2009-08-05 13 views
42

GNU emacsでは、私がすべてのバッファを見るためにCtrl-x Ctrl-bを押すたびに、ウィンドウが分割されてバッファリストが表示されます。 2(たとえば、下のウィンドウでシェルを実行する)、バッファリストが他のウィンドウに表示されます。emacsリストバッファの振る舞い

バッファリストをアクティブなウィンドウに表示して、バッファを選択して同じウィンドウで作業を続けることができます。Ctrl-x Ctrl-oと入力してと入力して)他のウィンドウでそのバッファを編集する...私はそれについてgoogledしましたが、それは一般的な欲望ではないようですか?私は誰かがelispy(または他の)ソリューションを持っているのだろうか?

答えて

54

あなたはlist-buffersではなくbuffer-menuを呼び出すためにCxとCbのを再バインドする必要があります(他の人が提案し'buffer-menu解決策ではなく)あなたは、元のバッファリストのような場合

(global-set-key "\C-x\C-b" 'buffer-menu) 
+2

1、2、...、または、b、c ...のような短いキーを使って1つのバッファをもっと早く開く方法があるかどうかを知りたいのですが、しかし、バッファリストは単純すぎるので、buffer-menuのmode、sizeカラムなどの余分な情報はありません。この問題を解決すれば、それは高く評価されます。 @ zimbu668 – CodyChan

13

ない正確に解決策が、ido-modeはバッファと対話するためのさまざまなと強力な方法を提供します。 C-x bはすべての開いているバッファのリストを表示し、選択したバッファが現在のウィンドウで開きます。

+1

私はあなたがdownvotedを得た理由を知っています...いつも私はオプションがあることを知っています! – hatmatrix

+0

ご確認の場合は、ご提案いただきありがとうございます。私は今、idoのファンです。 – hatmatrix

0

別-何-あなた-頼まない - のためのソリューション:ではなく、その名前(キーストロークを削減し、精度を高めるために使用タブ補完)を入力して終了し、マウスで希望のバッファを選択しない場合、リターンを打ちます。バッファリストが消え、新しいファイルが以前にアクティブなウィンドウで開きます。私はこれを得たが、どこ

+0

ありがとうございます - しかし私は主にターミナルで作業していますので、そこにマウスはありません...しかし、時々、いくつかのバッファーが*で始まるかどうか混乱しますが、あなたが正しいです、タブ補完は私を助けるでしょう。 – hatmatrix

+0

これは私のためのバッファリストウィンドウを削除しませんか? – sandos

1

わからない:

;;; Faster buffer switching 
(global-set-key [(C tab)] 'buffer-menu) 

これは、Ctrl-Tabキーは、現在のウィンドウ内のすべてのバッファを表示します。次に、バッファに移動し、Enterキーを押してアクセスします。

+0

ありがとうございます - Ctrl-tabは既に予約済みです:)しかし、バッファメニューが重要です。 – hatmatrix

3

は、あなたがこれを使用することができます:

(global-set-key (kbd "C-x C-b") 'my-list-buffers) 
(defun my-list-buffers (&optional files-only) 
    "Display a list of names of existing buffers. 
The list is displayed in a buffer named `*Buffer List*'. 
Note that buffers with names starting with spaces are omitted. 
Non-null optional arg FILES-ONLY means mention only file buffers. 

For more information, see the function `buffer-menu'." 
    (interactive "P") 
    (switch-to-buffer (list-buffers-noselect files-only))) 

これは現在のウィンドウでのみ機能します。

+0

switch-to-buffer-other-windowとVariantを使用しています。すでにバッファリストに入っている場合は特別な動作です。ありがとう。 – mkiever

11

だけ変数same-window-regexpsをカスタマイズします。 display-bufferは、現在選択されているウィンドウ内の正規表現と名前が一致するバッファを表示します。

(。あなたが「[*]Buffer List」を追加することになるでしょう)

+0

回避策を提示するのではなく、実際の問題(表示バッファの動作方法の変更)になるので、これが最良の答えです。 – xyzzyz

2

私は非常にそれをインストールしhttp://www.geekware.de/software/emacs/からbs.elをお勧めしますと:

(require 'bs) 
(add-hook 'bs-mode-hook 'turn-on-font-lock) 
(global-set-key "\C-x\C-b" 'bs-show) 

それは正しい方法でバッファとウィンドウ構成を管理しますので、すべてが最小限のキーストロークを必要とします。

+0

ありがとうございます - 「正しい方法」は、あなたが期待しているものに左右されます。 – hatmatrix

4

は、あなたの.emacsに

(ido-mode 1) 

を追加し、結果を楽しみにしてください:)

3

不思議なことに、ここでの答えはおよそibufferありません。私はEmacsのユーザーの大多数のための標準的な変化としてこれを推薦する

(global-set-key (kbd "C-x C-b") 'ibuffer) 

ibufferは、デフォルトのバッファリストのための非常に先進的な代替品です、とだけ要求された正確な振る舞いを備えていないが、提供豊富な他の機能

Emacs: help me understand file/buffer managementにいくつかのibufferフィルタリングとグループ化の基礎を記載しましたが、詳細はドキュメントを必ずお読みください。