bashでワイルドカードのタブ補完を有効にする方法は?


8

次のようなステートメントのbashでタブ補完を有効にするにはどうすればよいvim db/migrate/*creaですか?基本的に、正規表現に一致し、オプションを提示するためのタブ補完を探しています。

これを行うにはどうすればよいですか?

この質問は私がここで尋ねものに関連しています


4
db/migrate/*crea正規表現ではありません。*ここの文字は、bash拡張ワイルドカードとして使用されます。
Mircea Vutcovici

確かに正規表現です。マッチしdb/migrate///////creaます。:-)
ghoti 2014年

回答:


3

どのバージョンのbashを使用していますか?私が4.1.2を使用している場合、CentOS 6.2ではそのまま動作するようです。

[user@host foo]$ cd /tmp/foo
[user@host foo]$ mkdir bar
[user@host foo]$ touch bar/foo{1,2,3}
[user@host foo]$ vim bar/*1
*TAB*
[user@host foo]$ vim bar/foo1 
[user@host foo]$ touch bar/bar1
[user@host foo]$ vim bar/*1
*TAB* *TAB*
[user@host foo]$ vim bar/*1
bar1/ foo1  

オートコンプリートリストを表示するには、Tabキーを2回タップしますか?


4
これは、ご使用のバージョンのBashに関係するよりも、Bash完了スクリプトに関係があります。
ephemient

1

show-all-if-ambiguousタブを2回押す代わりに1回押すと、すべての補完が表示されます。また、グロブの完成方法も変更されます。

$ touch 1.0.{1,2}
$ bind 'set show-all-if-ambiguous off'
$ open *0* # I pressed tab twice here, and *0* was kept as *0*
1.0.1  1.0.2
$ open *0*^C
$ bind 'set show-all-if-ambiguous on'
$ open *0* # I pressed tab once here, and *0* was replaced with 1.0.
1.0.1  1.0.2
$ open 1.0.

glob-complete-word(\ eg)も*0(末尾にワイルドカードなしで)完了し1.0.ます。*/file*およびのようなパターンでも機能します**/file

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.