zshを初回起動したときに、こんな画面が出てきたのを見たことある人も多いと思う。
これはzshを初めて使うユーザのために、おすすめ設定を行うための画面だ。zsh-newuser-installというzshのシェルスクリプトでこの画面を表示してる。以下、この記事では「zsh-newuser-install画面」と呼ぶことにする。zshを使おうっていう人が最初に見ることになる画面なんだけど、けっこう分かりにくいのでここで解説する。
どうやったらこの画面になるのか
zsh-newuser-install画面はzshの起動ファイルをまだ作成していないときに表示される。起動ファイルというのは、具体的には次の4つ。
- ~/.zshenv
- ~/.zprofile
- ~/.zshrc
- ~/.zlogin
この4種類のファイルが1つもないときにzshを起動するとzsh-newuser-install画面が表示される。逆に4つのうちどれか1つでもあったら表示されない。
選択肢の意味
zsh-newuser-install画面には次の4つの選択肢がある。
- q
- 0
- 1
- 2
このうち好きなやつを選ぶ。ここから、それぞれの選択肢の意味を解説する。
qを選んだ場合
何もしない。~/.zshrcも作成されない。次回zshを起動したときも同じようにzsh-newuser-install画面が表示される。
0を選んだ場合
コメントだけを含む~/.zshrcを作成する。作成される~/.zshrcの例は以下の通り。
# Created by newuser for 5.0.5
ほんとに単にコメントが1行あるだけ。自分で一から~/.zshrcを書きたい人向け。
1を選んだ場合
メインメニューに進む。このあとzshの個別の設定についてどうするか質問されるので、それに答えていって、その結果を元に~/.zshrcを作ってくれる。なんか操作しにくいし、はっきりいって面倒。
2を選んだ場合
おすすめの~/.zshrcを作成する。おすすめの~/.zshrcというのは/etc/zsh/newuser.zshrc.recommendedに書いてあるので、要するにcp /etc/zsh/newuser.zshrc.recommended ~/.zshrc
してくれる。
けっこう妥当な設定が書いてあるので、これをそのまま使うのもそんなに悪くないと思う。たぶん内容はディストリビューションとかによって微妙に違うと思う。僕のUbuntu 14.04の場合の例は以下。
# Set up the prompt
autoload -Uz promptinit
promptinit
prompt adam1
setopt histignorealldups sharehistory
# Use emacs keybindings even if our EDITOR is set to vi
bindkey -e
# Keep 1000 lines of history within the shell and save it to ~/.zsh_history:
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.zsh_history
# Use modern completion system
autoload -Uz compinit
compinit
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
これを元に自分なりに改造していくのもあり。
まとめ
結局4つの選択肢のうちどれを選べばよいかをまとめると、
- 自分で全部設定したい人とか、コピペ用の~/.zshrcを使うつもりの人は0
- 設定とかよく分からないし、とりあえず無難な設定でzshを使ってみたい人は2
という感じになると思う。
最初に起動したときにいきなり聞かれて意味が分かりにくいけど、これを参考に選んでみるとよいと思う。