特定のコマンドに対してオートコンプリートを無効にするbashに頻繁にアクセスします。これにより、コマンド名にランダムな記号を追加し、オートコンプリートを使用してコマンド名を変更する必要があります。これは非常に迷惑なことです。たとえば、
# I type:
openvpn s<tab>
# Nothing happens, so I add x
openvpnx s<tab>
# Now this expands to
openvpnx somepath
# Same with ./configure or many other commands...
オートコンプリートが常に機能するように無効化機能を無効にする方法はありますか?
ベストアンサー1
上場完了の状況
Bash / Readlineがコマンドを完了するために使用していることがわかりますcomplete -p command
。たとえば、実行complete -p openvpn
すると
bash: complete: openvpn: no completion specification
これは、私のシェルが使用するReadlineに特定のコマンド補完機能がないため、デフォルトではファイル名である従来のopenvpn
補完形式を使用することを意味します。
別の例(定義完了デモンストレーション):
$ complete -p dillo
complete -F _filedir_xspec dillo
これは、名前付き関数がコマンド補完を_filedir_xspec
提供するために使用されることを示しますdillo
。
完了したコンテンツを削除
定義された完成を削除するには、組み込みオプションを使用-r
しますcomplete
。
complete -r openvpn