2011-11-21 8 views
5

にすると、ファイル名を拡張子で最初に入力した後にスペースを入れてファイル名の後に検索することができますか?例えば。 組織のメモ組織またははnotes.orgに切り替わります。Emacs - 拡張子を入力してバッファに切り替え、ファイル名を

これを行うには、このような関数を書く方法はありますか?

+0

このような機能のユースケースは何ですか? –

+1

これは、多くのバッファが開かれた場合に、与えられたタイプのすべてのファイルを簡単に見ることができます。 – Jarek

+0

ああ、そうだよ。ありがとう! –

答えて

11

idoを使用する場合は、org c-spaceノートを入力できます。

慣れていくために少し時間がかかりますが、個人的にはそれがなくても私は生きられません。

+0

idoをupvoteしようとしている人は、anything-configをチェックアウトしてください。分割ウィンドウでは、ファイル/バッファー名などの長い文字列をはるかによく見ることができます。また、あらかじめ定義された多数のソースが混在して一致することがあります。 –

+0

私は個人的に私はイドを使用して、うん、それはそれを行うことができます。これは '' C-x b。拡張M-m名 ''のようなものです。 @event_jr私は以前に "icicles"や "何か"を使ったことはありませんでした(しかし、私はiswitchbを使ってidoがうまくいくのでコメントアウトしました)。 Ido/Icicles/Anything互換性についていくつか言葉で言えますか?彼らはすべて同じことをしているのですか、それとも一緒に使用する理由がありますか? – desudesudesu

+0

AFAIKはidoと互換性があります。私は両方を使用する理由が表示されません。 Idoと何かが同様のことをしますが、ミニバッファではなく、通常のバッファに選択肢が示されていることを除いては。 –

3

Anythingは簡単にこれを行うことができ、何かを実行し、バッファの名前に任意の単語を入力し、ショーの結果:

Emacs Anything

は、それをインストールするには、このに従ってください:http://emacs-fu.blogspot.com/2011/09/finding-just-about-anything.html

あなたがフィルタリングすることができる場合バッファー、ここにあなたのための設定の例です:

(require 'anything-config) 
(global-set-key (kbd "C-x b") 
      (lambda() (interactive) 
       (anything 
       :prompt "Switch to: " 
       :sources 
       '(anything-c-source-buffers)))) 
+0

Pity画像をクリックすると大きな画像が開きません。この機能の把握のためにスクリーンショットの内容を実際に読むのに便利です。 – Tom

+0

デフォルトのanything-configマッチャーは、OPが要求したものを正確に行います。最初の単語がメジャーモード、つまりorgでもある場合、何もメジャーモードをフィルタとして使用します。 –

+1

Tom:イメージを直接開くだけです。実際にはそれよりも大きくなります(再帰的には面白いとは言えません)。 – phils

1

私は完全にあなたとers、IDOは非常に便利です。たとえば、「some-video-page.js」と「video.py」という2つのバッファがある場合は、「C-x b vidjs」または「C-x b vidpy」と入力してどちらかに切り替えることができます。

(ido-mode) 
(setq ido-enable-flex-matching t) 

また、バッファを整理するためにibufferを使用することを検討してください。バッファを完全なファイル名でフィルタリングし、現在のフィルタに基づいて複数のバッファを閉じることができます。

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

質問に戻ります。 uniquifyライブラリがEmacsに同梱されており、デフォルトでは親ディレクトリの名前がバッファ名に含まれます。しかし、これは私たちが話しているemacsであり、あなたはそれをカスタマイズすることができます。私はPythonのモジュール名でPythonのバッファのみを接頭辞とするカスタムファイルフックを持っています。 IDOで十分でしょうか、カスタムスイッチバッファ機能がまだ必要ですか?

1

Iciclesボックスからこれを行う - すなわち、apropos completionなくプレフィックス完了 - ちょうどS-TAB代わりにTAB完了するためを使用します。

注文に関係なく複数のパターン(サブストリングなど)を完成させるには、progressive completionを使用してください。 S-SPCを使用してパターンを区切ります。

 
    C-x C-f notes S-SPC org 

または

 
    C-x C-f org S-SPC notes 

または、orgは、ファイルの拡張子として一致していることを確認するために、\.orgを使用しています。 (または、正規表現の特殊文字のエスケープ、すなわち、サブ/正規表現のマッチングを切り替えるC-`を使用しています。)

同じことをあなたはバッファ名の補完(または完了の他の種類)のではなく、ファイル名を使用する場合完了。同じこと(それは「散布」マッチングと呼ばれる)だけでなく、fuzzy matchingの他のいくつかの種類がありイドの「フレックス」のマッチング、つららについては

。 (ただし、ファジーマッチングのすべての形式は、IMHOというよりはあまり役に立ちません。)

1

名前のグロブを使用すると、これをデフォルトで行うことができます。

C-XB*.orgTAB

Emacsの移動は、すぐにバッファ名の一部を入力し続けることができるように、アスタリスクの後に座って、自動的にポイントします。

また、*orgは、*.orgよりやや簡単に入力することができ、目的に応じて十分に類似した結果が得られるはずです。

1

Iswitchbは、Emacsに同梱されていますが、これは正確ではありませんが、近いです。これは、ミニバッファ内のバッファ名のリストを表示します。入力すると、リストには入力したテキストが名前に含まれるバッファーに絞り込まれます(先頭だけでなく、どこでも)。したがって、.orgと入力すると、名前に.orgが含まれているバッファになります。特定のファイルを開くには、カーソルを左に移動してファイル名の最後の文字を入力するか、C-rまたはC-sを押してマッチの中で回転させる必要があります。

Emacsのwikiはpage on Iswitchbcomparison of Icicles, Ido and Iswitchbです。

+0

私はiswitchbが大好きですが、私はC-r/C-sのことを知りませんでした。 :) – RealityMonster

関連する問題