2009-11-13 3 views
21

I:Cxのときに、〜バックアップファイル、.pycファイル、.origファイルなど、興味のないすべてのファイルをEmacsに表示させないようにするにはどうしたらいいですか? Cf TABEmacs補完ウィンドウに興味のないファイルを表示しない

これは、1つの点で作業している:私は開きたいファイルがfooので始まる知っていると私がfoo TABを入力した場合、その後のミニバッファを正しくfoo.py.するすべての方法を自動的に補完〜と.pycの両方がcompletion-ignored-extensionsにあるので、正しくfoo〜とfoo.pycを無視しました。また、実際にすべての文字を自分自身で入力したい場合、無視されたファイルを正しく開くことができます。

私はちょうど完了リストバッファを起動するためにTABを打つ場合は、そのリストは、それは非常に難しい私が探しているものを見つけることができます完了-無視-拡張での拡張子を持つファイルが含ま。

興味深いファイルを無視するコードが存在していることは明らかです。補完リストバッファをcompletion-ignored-extensionsに対応させるにはどうすればよいですか?

(バイ・バイ、私は同様に振る舞うのdiredすることができますか?)

答えて

20

アドバイスのこの作品は、'completion-ignored-extensionsに記載されている拡張子を持つファイルをフィルター:

(defadvice completion--file-name-table (after 
             ignoring-backups-f-n-completion 
             activate) 
    "Filter out results when they match `completion-ignored-extensions'." 
    (let ((res ad-return-value)) 
(if (and (listp res) 
    (stringp (car res)) 
    (cdr res))     ; length > 1, don't ignore sole match 
    (setq ad-return-value 
       (completion-pcm--filename-try-filter res))))) 

注:これはdiredには影響を与えません。

dired問題について、そこに利用できるもののアイデアを得るためにdocumentation for dired-xを読むあなたの.emacs

(eval-after-load "dired" 
    '(require 'dired-x)) 

(add-hook 'dired-mode-hook 
      (lambda() 
      (dired-omit-mode 1))) 

にこれを追加します。

+0

ほぼ完璧!変数の補完 - 無視 - 拡張を尊重するようアドバイスを修正することができますか? – emacsulike

+0

Yupは、 'completion-ignored-extensions'を使用します。 –

1

私は怖い、完了のための答えを知りません。これは設計によるものだと思います。あなたが探している名前を知っていれば、あなたはおそらくそう望んでいないでしょう。バックアップファイル。しかし、わからないときは、すべてのファイルのリストを用意するほうがよいでしょう。

しかし、のdiredのために、あなたは(あなたの.emacsで)起動時に '変数dired-x' のパッケージをロードすることができ、これはのdired-オミットモードが用意されています

(load "dired-x") 

あなたは「はMxカスタマイズを使用することができます-variable <RET> dired-omit-files 'は無視する実際のパターンを設定します。次に、diredモードでは、M-O(数字ではなく文字)を使用して、「省略」をオンとオフに切り替えることができます。

+0

ニース。私はdiredが "26行を省略しました"と言っているのが好きです。 (または何でも)鶏はディレクトリを開きます。私はファイル完了リストの場合も同じことが起こりうると考えています。これは時々必要となるかもしれないファイルを隠すことに対する懸念を緩和します。 TABをもう一度押すと、すべてのファイル(M-oなど)が表示されます。 – emacsulike

3

Iciclesデフォルトで期待する内容を行います。バッファ*Completions*を含む、ファイル名補完のために常にcompletion-ignored-extensionsを尊重します。 C-を押すことで、この無視/無視をいつでも切り替えることができます。ミニバッファ内の。あなたはケビン・ライド、その後、つららによってライブラリcompletion-ignored-build.elを使用する場合

はまた、自動的に無視されたファイルの拡張子のそのライブラリの動的な調整を利用しています。 (ちょうどロードcompletion-ignored-build.el - マイナーモードまたはアドバイスを有効にしないでください。)

6

ido-modeを使用してファイルを無視することをお勧めします。デフォルトではEmacsが付属していて、他にもたくさんの便利な機能が追加されています。 Ignorance is Bliss section from this Mastering Emacs blog postはファイル、ディレクトリ、およびバッファを無視する方法を説明します。

  • ido-ignore-buffersのCx B
  • ido-ignore-directoriesに無視するバッファのリストを受け取りのCx Dに無視するディレクトリのリストを受け取り、 CX Cfの
  • ido-ignore-filesCxとCfの
  • に無視するファイルのリストを受け取り
+4

IgnoranceはBlissセクションでもあります。Idoの有無にかかわらずより一般的な 'completion-ignored-extensions'を使用する方が好きなので、Idoでは何も無視しません。 –

関連する問題