16
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

zshAdvent Calendar 2014

Day 1

zshで初回起動したときに対話的にzshrcを作成する

Last updated at Posted at 2014-11-30

zshを初回起動したときに、こんな画面が出てきたのを見たことある人も多いと思う。

zsh_20141201.png

これは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

という感じになると思う。

最初に起動したときにいきなり聞かれて意味が分かりにくいけど、これを参考に選んでみるとよいと思う。

16
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?