おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

zshの使える設定まとめ

.zshrcの設定は【コラム】漢のzsh (22) もってけ泥棒! コピペで始めるzsh - リターンズ | エンタープライズ | マイコミジャーナルのコピペでほぼ問題ないとは思うのですが、それぞれの設定の意味と使い方くらいは抑えておきたいところです。というわけで、自分的に重要そうなものだけまとめてみました。

補完

autoload -U compinit
compinit

のようにすると、zshの補完機能が有効になります。また、

ls -

でtabを押すと

ls -
-1  -- single column output
-A  -- list all except . and ..
-B  -- don't list entries ending with ~
-C  -- list entries in columns sorted vertically
-D  -- generate output designed for Emacs' dired mode
-F  -- append file type indicators
-G  -- inhibit display of group information
-H  -- sizes in human readable form; powers of 1000
-I  -- don't list entire matching pattern
-L  -- list referenced file for sym link
-N  -- print raw characters
-Q  -- quote names
...

のようにオプションの種類と説明を表示してくれます。ハイフンなしでオプションを指定するコマンド(tarとか)は

tar[半角スペース][tab]

のようにするとオプション情報が表示されます。これは便利!!

auto_cd

setopt auto_cd

のように設定すると、ディレクトリ間の移動にcdを省略できます。一見地味ですが、急いで一つ上のディレクトリに移動しようとして

cd..
zsh: command not found: cd..

となり悲しくなることがなくなります。これも便利。

auto_pushd

setopt auto_pushd

のように設定すると、

cd -[tab]

でcd履歴を見れるようになります。

cd -
0 -- /Users/willnet
1 -- /Library/Ruby/Gems/1.8/gems

もちろん数値を入力すると、履歴のディレクトリへ移動できます。深い階層のディレクトリを行ったり来たりするときに便利。

correct

setopt correct

のようにすると、入力コマンドが間違えていたときに近いコマンド名を探してくれます。

ho
who is correct? [n,y,a,e]: 

探してくれたコマンドが正しくて便利な時よりも、探してくれたコマンドも間違っていていてひと手間増えることの方が多い気がするので、僕はこの設定はあまり好きでないです。

list_packed

setopt list_packed

のようにすると補完候補を詰めて表示してくれます。まあまあ便利。