Make emacs next-buffer skip *Messages* buffer

后端 未结 4 975
盖世英雄少女心
盖世英雄少女心 2021-01-02 06:36

I\'d like to make a simple change to Emacs so that the next-buffer and previous-buffer commands (which I have bound to C-x

4条回答
  •  Happy的楠姐
    2021-01-02 06:40

    This is what I'm using, based on Diego's answer:

    (setq skippable-buffers '("*Messages*" "*scratch*" "*Help*"))
    
    (defun my-next-buffer ()
      "next-buffer that skips certain buffers"
      (interactive)
      (next-buffer)
      (while (member (buffer-name) skippable-buffers)
        (next-buffer)))
    
    (defun my-previous-buffer ()
      "previous-buffer that skips certain buffers"
      (interactive)
      (previous-buffer)
      (while (member (buffer-name) skippable-buffers)
        (previous-buffer)))
    
    (global-set-key [remap next-buffer] 'my-next-buffer)
    (global-set-key [remap previous-buffer] 'my-previous-buffer)
    

    It is not great yet, because it will hang if there are no buffers other than the skippable-buffers I list. I use C-g to break out of the loop when it happens as a hackaround.

提交回复
热议问题