さまざまなbash環境(さまざまなインストール)で、ヒットしたときのパス補完に関して異なる動作があります TAB コマンドラインで。これはどこで処理されますか?
具体的な例:
cmake
を-D
-引数で実行します:
cmake -DCMAKE_TOOLCHAIN_FILE=~/x-too<TAB>
それは何もしません。一方、=
と~
の間のスペースに注意してください
cmake -DCMAKE_TOOLCHAIN_FILE= ~/x-too<TAB>
に完了します
cmake -DCMAKE_TOOLCHAIN_FILE= ~/x-tools
他のシステムでは、=と〜の間にスペースがなくても機能します。
関連する構成ファイルと値はどこにありますか?
Linuxの自動補完はcomplete
で機能します。
]➬complete -p cmake
complete -F _cmake cmake
_cmakeが担当します。
]➬type _cmake > cmake.sh
そして今、それを見て/デバッグしてください。たとえば_cmake_mineで変更し、それをテストするために呼び出します。
. cmake.sh
complete -F _cmake_mine cmake
any builtin bashコマンドのヘルプを取得するには:
help complete
help [[
help for
/etc/profile
で始める必要があります。他のファイルのソースを確認します(おそらく.
コマンドを使用)。
たとえば、私のUbuntuシステムでは、
/etc/profile
はすべての* .shファイルを/etc/profile.d/
にソースします/etc/profile.d/bash_completion.sh
ソース/usr/share/bash-completion/bash_completion
/usr/share/bash-completion/completions/
を検索する補完ローダー関数を設定します~/.bash_completion
さまざまなシステムでそのパスをたどる必要があります。おそらく、そのうちの1つの/ usr/share/bash-completion/completions /にcmake
ファイルがありません。