zsh 設定 - 補完 -
zsh 使うなら強力な補完機能はとりあえず使っときたいですね。というわけで、下の設定は是非やっておきましょう。
シェル上でコマンドやファイル名を途中まで入力して [tab] キーを押すと、入力候補がリストアップされたり補完されたりします。
# mkdir -[tab]
correct はコマンドの入力間違いを訂正してくれる機能です。
# sl
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# completion
autoload -U compinit
compinit
setopt correct
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
入力補完
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] でもキャンセルできないという鬱陶しい(笑)スクリプトがあったのですが、まだ存在しているんでしょうかね?
【関連】
そういえば、昔 sl と入力するとターミナル上を蒸気機関車が走りだし、走ってる間は [ctrl-c] でもキャンセルできないという鬱陶しい(笑)スクリプトがあったのですが、まだ存在しているんでしょうかね?
【関連】