completion機能とは、ターミナルでコマンドやファイル名を打ち込んでいる途中でtabキーやescキーを押すことにより、残りの部分や、候補を表示してくれる機能です。
例えば、compと打ってtabキーを2回押すと
$ comp<tab><tab>
compare compileHelp complete composite
compgen compile_et compopt compress
$ comp
と表示されます。<tab>はtabキーを押すことに対応したつもりです。
ここで、lと打ち込み、tabキーを押すと以下のようになります。
$ compl<tab>
$ complete
上では、2行に分けて書いていますが、実際はtabキーを押した瞬間に、残りの"ete"が自動的に追加され、キー入力が軽減されます。
ところが、以前 tcsh を使っていた時は、最初のcomp<tab><tab>の部分が、comp<tab>とtabキー1回の押打で済んでいたので、結構ストレスになっていました。
当初、bashのキーバインド機能やcompletion機能をmanページ等で調べていましたが、なかなか解決にたどりつけず、諦めかけていたのですが、やっと解決方法がわかりました。(既に数年前の話ですが)
結論ですが、~/.inputrcに以下の記述を追加することで解決しました。
set show-all-if-ambiguous on
これで、tabキー一回でcompletionが効くようになりました。
0 件のコメント:
コメントを投稿