zsh 設定 - 補完 -

zsh 使うなら強力な補完機能はとりあえず使っときたいですね。というわけで、下の設定は是非やっておきましょう。



入力補完


autoload -U compinit
compinit 


シェル上でコマンドやファイル名を途中まで入力して [tab] キーを押すと、入力候補がリストアップされたり補完されたりします。

zsh で compinit を有効にすると、上記に加えコマンドのオプションも補完対象になります


下の例だと mkdir のオプションを忘れてしまった時に - (ハイフン)まで入力して [tab] を押すとオプションのリストが表示されます。


# mkdir -[tab]
--context  -Z  -- set SELinux context
--help         -- display help information
--mode     -m  -- set permission mode
--parents  -p  -- make parent directories as needed
--verbose  -v  -- print message for each created directory
--version      -- display version information
# 


あとは、 man コマンドの引数としてのコマンド名も補完してくれたりします。とにかくなんだかよく頑張ってくれるやつですので困ったときは [tab] を押してみましょう。



コマンド訂正


setopt correct


correct はコマンドの入力間違いを訂正してくれる機能です


例えば、 ls を間違えて sl のように入力してしまうと「ひょっとして ls では?」と尋ねてきてくれます。

# sl
zsh: correct 'sl' to 'ls' [nyae]? y
anaconda-ks.cfg  a.out  install.log  install.log.syslog
#


correct_all というオプションもあり、それを設定するとコマンドだけでなく入力行全部が訂正対象になるのでファイル名間違いの修正候補を出してくれるようになります。

まあ、ファイル名は普通 [tab] 使って補完しながら入力すると思うんで correct_all はそれほど必要ではないかと。




zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}


コマンドの出力結果はデフォルトで色がつきますが、補完候補として出力されるものには色がつきません。

上の行を設定すると ls や cd 等のコマンドの補完候補として出力されるファイルやディレクトリに色がつきます


下の例では ls の後にスペースをあけて [tab] を入力しています。

# ls [tab]
anaconda-ks.cfg     install.log.syslog  test.png            vimrc_example.vim
install.log         rpmbuild/           vim-7.2.tar.bz2





そういえば、昔 sl と入力するとターミナル上を蒸気機関車が走りだし、走ってる間は [ctrl-c] でもキャンセルできないという鬱陶しい(笑)スクリプトがあったのですが、まだ存在しているんでしょうかね?



【関連】



このブログの人気の投稿

zsh 設定 - プロンプト -

テンションを上げたいときにおすすめの曲(StarrySky YEAH! Remix)

OpenLDAP のログ周りの設定をする