bashの自動補完機能を無効にする

シェルで cd $HOMEと入力してtabを押すと自動的に変数を補完してくれる機能があるんですが、たまにこの機能が鬱陶しい事があります。この補完機能、bash-completionと呼ばれていてcompleteというコマンドで制御できるらしいのですが、一通り無効化するには下記のように-rオプションをつけると現在設定されているすべてのbash-completionが無効化されます。

$ complete -r

ちなみにここでリセットした後、一度シェルをexitしてもう一度立ち上げれば元に戻ります。設定を保存するにはbashrcなんかに書いておくといい気がします。

また、この補完機能が悪さをして、たまに echo $HOME/<tab> と押したら echo \$HOME/\ と補完されてしまう事があります。CentOS7の環境でよく見かけていて、原因はよくわかりませんが、とりあえずcomplete -rを実行すれば直るようです。ちなみにcomplete -rを実行してもカレントディレクトリ内のファイル名の補完や、コマンドの補完はやってくれますのでご安心ください。こっちはshoptで機能を無効にできた気がする(よく調べてません)

コメントを残す