From c5dcf3e4739f629d707f3ab1ace11be970dbed16 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 30 Aug 2025 16:46:48 -0500 Subject: add cj/buffer-same-mode for switching between mode buffers Bind it to C-x B (capital) for ease of discovery/use/habit development --- modules/test-code.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'modules/test-code.el') diff --git a/modules/test-code.el b/modules/test-code.el index 57046c18..cbccd105 100644 --- a/modules/test-code.el +++ b/modules/test-code.el @@ -14,6 +14,18 @@ (require 'user-constants) +;; ------------------------------ Buffer Same Mode ----------------------------- + +(defun cj/buffer-same-mode (&rest modes) + "Pop to a buffer with a mode among MODES, or the current one if not given." + (interactive) + (let* ((modes (or modes (list major-mode))) + (pred (lambda (b) + (let ((b (get-buffer (if (consp b) (car b) b)))) + (member (buffer-local-value 'major-mode b) modes))))) + (pop-to-buffer (read-buffer "Buffer: " nil t pred)))) +(global-set-key (kbd "C-x B") 'cj/buffer-same-mode) + ;; --------------------------------- Org Noter --------------------------------- (use-package org-noter -- cgit v1.2.3