Emacsで複数のファイルを開いてC-x <right>
で切り替えて作業する際、*Message*
や*tramp/ssh hostname*
のようなバッファが邪魔なので、バッファ名の最初と最後が*
のバッファを、バッファ切り替え時に表示しないようにする。
init.el
(defun switch-buffer-skipping-special-buffer (next)
(let ((start-buf (buffer-name))
(func (if next 'next-buffer 'previous-buffer)))
(funcall func)
(while (and (string-match "\\`\\*.+\\*\\'" (buffer-name))
(not (string= start-buf (buffer-name))))
(funcall func))))
(defun next-buffer-skipping-special-buffer ()
(interactive)
(switch-buffer-skipping-special-buffer t))
(defun previous-buffer-skipping-special-buffer ()
(interactive)
(switch-buffer-skipping-special-buffer nil))
あとはnext-buffer-skipping-special-buffer
やprevious-buffer-skipping-special-buffer
を適当なキーにバインドすればOKです。
あくまで切り替え時に該当バッファを飛ばしているだけなので、switch-to-buffer
などを使えば普通に表示させることも可能です。