web-dev-qa-db-ja.com

ターミナルで長いファイル名をオートコンプリートする方法

「build」で始まる長い名前のファイルが現在のディレクトリにある場合、コンソール「build」で書き込むことができます。 Tab オートコンプリートタイプの完全なファイル名を入力してください。ただし、buildで始まるファイルが複数ある場合、オートコンプリートは機能しません。単にbuildで始まるファイルのリストが表示されます。

逆にWindowsで押すと Tab キーを押すと、最初のファイルの完全なファイル名がすぐに表示されます。 Tab キー2回目には2番目のファイル名が表示されます。

WindowsのようにLinuxでファイル名をオートコンプリートする方法は? PS:拡張子だけが異なるいくつかの長いファイル名がある場合、それは本当にひどいです。

2
Rem

拡張子が異なる場合、複数のオプションがあるまで、オートコンプリートのみがすべて自動入力します。タブで名前のリストが表示されたら、次の文字を入力し、もう一度タブを押して自動補完を再開します。

私は[/ projects/freshmeat_linux/linux]気になっているので、私は本当にWindowsのオートコンプリートが機能する方法との戦いを持っています、それはあなたが慣れているものだと思います;)

3
sPENKMAN

私にとって命の恩人である何かは、ダムリストを表示する代わりに可能性をbashサイクルさせることです。

Bashはオートコンプリートにreadlineを使用しているため、~/.inputrcに次の行を追加します

満足し、数日/週のソリューションの下で徹底的にテストしたら、カットアンドペースト(しないでくださいコピー!)システム全体の設定を含む~/.inputrcから/etc/inputrcへの同じ設定。これをシステム上のすべてのユーザーが使用できるようにします。

Codez:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

次にexitターミナル(またはPuTTYのようなリモートターミナル)を開き、再度開きます...

例:

  1. file1file2file3の3つのファイルがあり、次のように入力した場合:

    e fTabTabTab

    それは順方向に循環します:

    e file1
    e file2
    e file3
    

    逆方向にサイクルしたいときは、 Shift+Tab

  2. 入力すると:

    very-complicated-command with lots of command line parameters
    

    次に同じコマンドが必要になったときは、次のように入力するだけです。

    very

    そしてそれはあなたのためにタイプします:

    very-complicated-command with lots of command line parameters
    

これにより、bashの時間を大幅に節約できます。 ;-)

ソース

3
Fabby

次の2つのオプションがあります。

1)もう1文字入力して、もう一度タブ

2)完成度の高いシェルを使用します。私はzshを使用していますが、魚にも素晴らしい(やや優れた)補完機能があります

Zshの場合、チェックアウト oh-my-zsh

編集:少なくともデフォルトのzsh設定では、オプションの循環を開始する前に2回タブする必要があります

2
user267362