$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

zshの設定をいろいろしてみた

http://journal.mycom.co.jp/column/zsh/index.htmlzshの設定や使い方がまとめられていたので、いろいろ使ってみた。非常に便利になるので、ちょっとだけまとめ。

設定ファイル

設定ファイルとしては以下の5つがある。

  1. ~/.zshenv
  2. ~/.zprofile
  3. ~/.zshrc
  4. ~/.zlogin
  5. ~/.zlogout

それぞれ、実行されるタイミングが違う。

  • ログインシェルでzsh起動・・・1〜4を実行
  • インタラクティブシェルでzsh起動・・・1,3を起動
  • スクリプト実行するコマンドとしてzsh起動・・・1を起動
  • ログアウトする・・・5を起動

.zshenvはシェルスクリプトを実行するときも読み込まれるので、注意した方がいいみたい。基本の設定は.zshrcに書けば良さそうです。
参考:http://journal.mycom.co.jp/column/zsh/001/index.html

いろいろ設定

文字コード設定

zsh文字コードの設定をします。

export LANG=ja_JP.eucJP

シェルから起動されるコマンドやアプリケーションにはシェルで設定された環境変数が引き継がれるので、文字コードも指定しておかないとだめ。
参考:http://journal.mycom.co.jp/column/zsh/002/index.html

プロンプト表示

プロンプト表示を変えてみる。後でこだわるとして、とりあえずコピー。PROMPTは通常、PROMPT2は複数行入力時、SPROMPTは入力ミス確認などに表示される。

PROMPT="%/%% "
PROMPT2="%_%% "
SPROMPT="%r is correct? [n,y,a,e]: "

参考:http://journal.mycom.co.jp/column/zsh/002/index.html

コマンド補完強化

「ls -」とかの状態で補完すると、使えるオプションが表示できたりするようになる。configureのときとかでも表示できる。普通に便利。

autoload -U compinit
compinit

参考:http://journal.mycom.co.jp/column/zsh/005/index.html

コマンド履歴設定

コマンド履歴の設定。保存場所と、保存量を変更。hist_ignore_dupsは同じコマンドを重複して記録しないようにするオプション。share_historyはコマンド履歴ファイルを共有する設定(たぶん今の環境では使わない)。

HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt hist_ignore_dups
setopt share_history

参考:http://journal.mycom.co.jp/column/zsh/003/index.html

コマンド履歴検索設定

コマンド履歴を検索する時の設定。今までのコマンドから入力した内容と前方一致するコマンドの履歴を辿れる。^pで戻る、^nで進むという感じのキーバインド。不都合が出たら変えよう。

autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end

ちなみに初期設定で^rを押すとインクリメンタルに検索できます。
参考:http://journal.mycom.co.jp/column/zsh/004/index.html

cd入力省略

ディレクトリ移動するときにcdを入力しなくてもよくなる

setopt auto_cd

参考:http://journal.mycom.co.jp/column/zsh/005/index.html

ディレクトリ履歴保存

ディレクトリの履歴を保存してくれて、間違えて違うところに飛んでも戻れるようになる。

setopt auto_pushd

設定後、「cd -」と入力して置換すると、

cd -
0 -- /Users/shibazaki/Downloads
1 -- /Users/shibazaki

のような形で履歴が表示される。この置換を表示させるにはコマンド補完強化の設定をしておかなければいけません。
参考:http://journal.mycom.co.jp/column/zsh/005/index.html

コマンド修正

間違えてコマンド入力しても、修正してくれたりする。タイポしても安心!!

setopt correct

参考:http://journal.mycom.co.jp/column/zsh/005/index.html

まとめ

今回いろいろ設定してみたけど、これだけでもすごく便利になった。まだまだ全然知らない設定や、そもそもあまりzshについて知らないので、少しずつzshの勉強もしなきゃいけないと思った。