26

Cx Cf TABのときに、Emacsが興味のないすべてのファイル(〜バックアップファイル、.pycファイル、.origファイルなど)を表示しないようにするにはどうすればよいですか?

これは1つの点で機能しています。開きたいファイルがfooで始まり、foo TABと入力すると、ミニバッファーはfoo.pyまで正しくオートコンプリートされます。〜と.pycの両方がcomplete -ignored-extensionsにあるため、foo〜とfoo.pycは正しく無視されました。また、自分ですべての文字を入力して本当に必要な場合は、無視されたファイルを正しく開くことができます。

ただし、Tabキーを押して完了リストバッファを表示すると、そのリストには、拡張子がcomplete-ignored-extensionsのファイルが含まれているため、探しているものを見つけるのが非常に困難になります。

明らかに、興味のないファイルを無視するコードがあり、機能しています。完了リストバッファを取得して、 completion-ignored-extensionsを尊重するにはどうすればよいですか?

(by-by、diredを同じように動作させることはできますか?)

4

4 に答える 4

24

このアドバイスは、以下にリストされている拡張子を持つファイルを除外します'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問題については、これを.emacsに追加してください

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

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

dired-xのドキュメントを読んで、そこで何が利用できるかを理解してください。

于 2009-11-13T21:36:49.413 に答える
9

ファイルを無視するには、 ido-modeを使用することをお勧めします。デフォルトでEmacsが付属しており、すぐに好きになることを学ぶことができる他の多くの便利な拡張機能が追加されています。このMasteringEmacsブログ投稿のIgnoranceisBlissセクションでは、ファイル、ディレクトリ、およびバッファを無視する方法について説明しています。

  • ido-ignore-buffers 無視するバッファのリストを取得しますC-x b
  • ido-ignore-directories 無視するディレクトリのリストを取得しC-x dC-x C-f
  • ido-ignore-files 無視するファイルのリストを取得しますC-x C-f
于 2012-01-04T16:17:14.460 に答える
3

つららはデフォルトで期待どおりの動作をします。completion-ignored-extensionsバッファを含め、常にファイル名の補完を尊重*Completions*C-.また、ミニバッファを押すことで、いつでもこの無視のオン/オフを切り替えることができます

さらに、completion-ignored-build.elKevin Rydeによるライブラリを使用する場合、 Iciclesは、無視されたファイル拡張子のそのライブラリの動的調整を自動的に利用します。(ロードするだけcompletion-ignored-build.elです。マイナーモードやアドバイスを有効にしないでください。)

于 2011-09-03T23:43:23.560 に答える
1

完成の答えがわからないので、怖いです。これは仕様によるものだと思います。探している名前がわかっている場合は、バックアップファイルなどはおそらく必要ありません。ただし、わからない場合は、すべてのファイルのリストを用意しておくことをお勧めします。

ただし、diredの場合、起動時に(.emacsに)「dired-x」パッケージをロードできます。これにより、dired-omit-modeが提供されます。

(load "dired-x")

「Mxcustomize-variable<RET>dired-omit-files」を使用して、実際のパターンを無視するように設定できます。次に、diredモードのときに、MO(数字ではなく文字)を使用して「省略」のオンとオフを切り替えることができます。

于 2009-11-13T21:16:57.343 に答える