2

私は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 の場合)? 提案として印刷するための補完ワードリストを処理する正規表現を定義する方法はありますか?

4

1 に答える 1

1

コメントを回答としてマークする機能のリクエストは引き続き拒否されるため、上記のソリューションをここにコピーします。

-o filenamesしたがって、解決策は、呼び出し時に使用することが判明しましたcompleteCOMPREPLY bash 補完オプションの部分文字列のみをユーザーに表示– 結果が返される

于 2013-08-30T11:39:05.540 に答える