完了候補から特定の結果を選択します


10

特定のディレクトリに3つのファイルがあるとします。 abc.txt, aww.txt, ant.txt

私が行う場合:(cat aそしてタブを押してオプションを表示する)ターミナルは3つのファイル名を表示します:abc.txt, aww.txt, ant.txt

端末が表示した結果のインデックス番号を指定して、入力するのではなくn番目の結果を選択する方法はありますか?

次のようなもの:cat a22番目のファイル(aww.txt)を取得するには?


私が知っていることではありません。Zshでは、TABを複数回押すことで可能なすべての補完を反復できます(つまり、TABを4回押すと完了しますant.txt)。ナビゲーションを改善するために逆方向に反復できるように設定することもできます。これは明らかにシェルをZshに変更することを意味します。あなたがそれが十分に良い代替案だと考えるなら、私はその答えを書くことができます。
kos

回答:


11

bashを使用していると想定して、次のコードをに追加します~/.bashrc

bind '"\e[6~": menu-complete'
bind '"\e[5~": menu-complete-backward'

または、bashだけでなく、readline補完ライブラリを使用するすべてのプログラムのデフォルトを変更するには、次~/.inputrcを含むファイルを作成します。

$include /etc/inputrc
"\e[6~": menu-complete
"\e[5~": menu-complete-backward

これで、新しいターミナルを開いたときに、次のキーを押すことができます。

  • TAB 通常どおり、使用可能な補完を確認します。
  • Pg Dn 最初の補完を選択するか、次の補完に変更します。
  • Pg Up 最後の完了を選択するか、前の完了に変更します。
  • Alt+ n Pg Dnは、n番目の補完を選択するか、n個の補完を進めます。

だから、あなたの例のタイプのためPg DnPg Dnか、Alt+ 2Pg Dn秒のファイルを取得しますaww.txt


cdディレクトリを使用して循環しているとしましょう。そのディレクトリを「選択」して、そのディレクトリのコンテンツの循環を開始するには、どのキーを押しますか?設定/バインドする別のことはありますか?
トニー・

別の方法として、手をキーボードのホーム行から遠くに移動したくない場合は、PageUpの代わりにCtrl + Alt + Pを使用し、PageDownの代わりにCtrl + Alt + Nを使用bind '"\e\20": menu-complete-backward'bind '"\e\16": menu-complete'ます。
ルスラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.