Add some useful occur functions
This commit is contained in:
parent
c153b9f9a9
commit
7f6f3c1233
@ -12,6 +12,37 @@ Repeated invocations toggle between the two most recently open buffers."
|
||||
(interactive)
|
||||
(switch-to-buffer (other-buffer (current-buffer) 1)))
|
||||
|
||||
(defun get-buffers-matching-mode (mode)
|
||||
"Returns a list of buffers where their major-mode is equal to MODE"
|
||||
(let ((buffer-mode-matches '()))
|
||||
(dolist (buf (buffer-list))
|
||||
(with-current-buffer buf
|
||||
(if (eq mode major-mode)
|
||||
(add-to-list 'buffer-mode-matches buf))))
|
||||
buffer-mode-matches))
|
||||
|
||||
(defun get-buffer-modes ()
|
||||
"Returns a list of all major modes in currenctly open buffers."
|
||||
(delete-dups
|
||||
(cl-loop for buf in (buffer-list)
|
||||
collect (with-current-buffer buf major-mode))))
|
||||
|
||||
(defun multi-occur-in-mode (mode regexp)
|
||||
"Show all lines matching REGEXP in buffers with this major mode."
|
||||
(interactive (list (completing-read "List lines from buffers with mode: "
|
||||
(get-buffer-modes)
|
||||
nil
|
||||
'confirm
|
||||
nil
|
||||
nil
|
||||
major-mode)
|
||||
(read-string "List lines matching regexp: ")))
|
||||
(multi-occur (get-buffers-matching-mode mode) regexp))
|
||||
|
||||
(defun occur-all (regexp)
|
||||
"Show all lines matching REGEXP in all open buffers."
|
||||
(interactive "MList lines matching regexp: ")
|
||||
(multi-occur-in-matching-buffers ".*" regexp t))
|
||||
|
||||
(leader-def-key
|
||||
"TAB" #'switch-to-previous-buffer
|
||||
@ -20,7 +51,8 @@ Repeated invocations toggle between the two most recently open buffers."
|
||||
"bd" #'kill-buffer
|
||||
"bm" #'kill-other-buffers
|
||||
"br" #'rename-buffer
|
||||
"bg" #'revert-buffer)
|
||||
"bg" #'revert-buffer
|
||||
"bo" #'occur-all)
|
||||
|
||||
;; A library that provides a hook called on switching buffers
|
||||
(use-package switch-buffer-functions
|
||||
|
Loading…
Reference in New Issue
Block a user