Bash / zshタブオートコンプリート:初期コマンドが与えられたら、オートコンプリートを使用してディレクトリ内の特定のファイルを無視します。

Bash / zshタブオートコンプリート:初期コマンドが与えられたら、オートコンプリートを使用してディレクトリ内の特定のファイルを無視します。

私が尋ねる質問は少し具体的であり、Unix Stackexchangeの他のオートコンプリートの質問とは異なるかもしれません。

次のディレクトリがあるとします。

-rw-r--r-- 1 hlin117 staff 1.1K Sep 19 13:05 doc.aux
-rw-r--r-- 1 hlin117 staff  26K Sep 19 13:05 doc.log
-rw-r--r-- 1 hlin117 staff 177K Sep 19 13:05 doc.pdf
-rw-r--r-- 1 hlin117 staff  13K Sep 19 13:01 doc.tex

そうしようとしてもあまり役に立たず、一般的な状況なら私もそうvim doc.pdfしないだろう。代わりによくする方です。vim doc.logvim doc.aux

vim doc.tex

残念ながら、tab-autocompleteはただdoc.tex

vim \tこれを入力してディレクトリ内の一部のファイルを無視する方法はありますか?

より一般的にcommandを入力してコマンドを入力すると、ディレクトリ内のファイルを無視するX \t設定を作成できますか?X

注:私はzshを使います。 bashとzshの同様の解決策があるかどうかはわかりません。

ベストアンサー1

zshで「新しい」完成システムを使用するには(たとえば、システムcompinitにいる場合.zshrc)、次のようにします。file-patternsスタイル

zstyle ':completion:*:*:vim:*' file-patterns '^*.(aux|log|pdf):source-files' '*:all-files'

完了していない場合、*.(aux|log|pdf)パターンに一致するファイルのみがコマンドラインで完了します。vim

*特に、明示的に一致するコマンドを除くすべてのコマンドを一致させるために、コマンド名パターンを使用できます。

おすすめ記事