私はto
、bash でファイル システムの場所をブックマークするというスクリプトに取り組んでいます (zsh のサポートは限定的です)。ここでソースを見つけることができます: https://github.com/resultsreturned/to
このスクリプトは、すべての操作でタブ補完をサポートしています。
フォルダーの場所を「ブックマーク」したとします。
mara@andromeda:~/bin/android-sdk-linux$ to -b android
次に、スクリプトを使用すると、次のようにブックマークのサブフォルダーにアクセスできます。
mara@andromeda:~$ to android/docs/
mara@andromeda:~/bin/android-sdk-linux/docs$
タブを 2 回押すと、候補が表示されます。
mara@andromeda:~$ to android/s<TAB><TAB>
android/samples/ android/sd-card/ android/sources/ android/system-images/
ただし、提案では、現在バッファーに入力されていないパスの部分のみを出力することをお勧めします。たとえば、次のcd
コマンド:
mara@andromeda:~/bin$ cd android-sdk-linux/s<TAB><TAB>
samples/ sd-card/ sources/ system-images/
提案には、現在入力されているディレクトリ レベルのみが含まれていることに注意してください。
問題は、bash が提案を出力する方法をどのように制御するかということです。補完ワードリストとは無関係にこれを行うことは可能ですか (compgen/complete の場合)? 提案として印刷するための補完ワードリストを処理する正規表現を定義する方法はありますか?