6

私は.emacsにこれを持っています:

(global-set-key "\M-s" 'switch-to-buffer)

また:

(defvar crs-hated-buffers
  '("KILL" "*Compile-Log*" "*Buffer List*" "*Messages*" "*Occur*"
    "*Completions*" "*compilation*" "TAGS" "*scratch*" "*grep*"
    "source" "headers"))
(setq iswitchb-buffer-ignore (append '(
    "^ "
    "^\\*Buffer"
    "^\\*Completions\\*"
    "^\\*tramp"
    "^\\*Dired log\\*"
    "^\\*Quail Completions\\*"
    "^\\*Disabled Command\\*"
    "^TAGS"
    )
    crs-hated-buffers))

これらの嫌いなバッファを switch-to-buffer リストから除外するにはどうすればよいですか?

4

2 に答える 2

6

たぶん次のようなものです:

(global-set-key [?\M-s] 'my-switch-to-buffer)

(defun my-switch-to-buffer ()
  (interactive)
  (let ((completion-regexp-list '("\\`[^*]"
                                  "\\`\\([^T]\\|T\\($\\|[^A]\\|A\\($\\|[^G]\\|G\\($\\|[^S]\\|S.\\)\\)\\)\\).*")))
    (call-interactively 'switch-to-buffer)))

経由での機能リクエストに値する可能性がありますM-x report-emacs-bug

于 2013-11-14T23:13:05.457 に答える
1

ErgoEmacs の「ユーザー バッファへの切り替え」関数を参照してください: http://www.ergoemacs.org/emacs/elisp_next_prev_user_buffer.html

彼はすべての内部バッファー (* で始まるもの) を除外します。これは、 magitシェル、さらにはgrepバッファーの使用に慣れている場合に問題になる可能性があります。

«Emacs は、ユーザーが循環することに関心のない多くの内部バッファーを生成することがよくあります。⁖ {スクラッチ,メッセージ,シェル,シェル コマンド出力,発生,完了,適切,情報, …}. emacs のバッファーをスキップする独自の next-user-buffer を定義することも、emacs のバッファーだけを循環する next-emacs-buffer を定義することもできます。»

私は ido を使用してバッファを切り替えているので、そのようなフィルタは必要ありません。

于 2013-11-15T10:33:44.717 に答える