footmark

ひよっこエンジニアの足跡

ミニマムな.zshrc

友達に影響を受け、zshを使い始めてから早数ヶ月。
デフォルトの設定で使い続けていました。
ぼちぼち最小限の設定くらいはしようと弄った備忘録。

oh-my-zsh

調べてみるとoh-my-zshなるzshの設定を管理するフレームワークがあるらしい。
が、(プラグインをたくさん入れると)重いらしい。

prezto

するとpreztoというoh-my-zshの軽量版に当たるフレームワークを発見。
設定を追加するpluginと見た目をオシャレにするthemeに分かれているとのこと。

zshのインストール

手元のCentOSzshが入っていなかったのでインストールからやってみます。

# yum -y install zsh

確認。

$ zsh --version
zsh 4.3.10 (x86_64-redhat-linux-gnu)

入ってますね!

現在のシェルを確認してみましょう。

$ echo $SHELL
/bin/bash

bashですね。

確認も兼ねてシェルのパス一覧を表示してみます。

$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
/bin/zsh

zshのパスは /bin/zsh になっています。

chsh コマンドでデフォルトのシェルを変更します。

$ chsh
user のシェルを変更します。
パスワード:
新しいシェル [/bin/bash]: /bin/zsh
シェルを変更しました。

ターミナルを再起動して反映させます。
これでzshが使えるようになりました!

preztoのインストール

oh-my-zshを使っていて重いと感じている方、preztoはいかが? - Qiita に則って進めていきます。

まずは公式に載っているコマンドを実行。

$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

次に初期設定のファイルを設置します。

setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

反映。

source ~/.zshrc

変わらなくてワロタ。

zshのアップデート

よく見たらログイン時に以下のメッセージが。

prezto: old shell detected, minimum required: 4.3.11

どうやらyumで入れたzshのバージョンが腐ってたようです。。。
ソースからコンパイルして最新版にしましょう。。。

まずソースを取ってきます。

# wget http://sourceforge.net/projects/zsh/files/zsh/5.0.6/zsh-5.0.6.tar.gz/download

解凍して。。。

# tar zxvf zsh-5.0.6.tar.gz

コンパイル

# cd zsh-5.0.6
# ./configure --enable-multibyte

ライブラリが足りたいとか言われたので入れます。。。

# yum install ncurses-devel

気を取り直してコンパイルからのインストール。

# make
# sudo make install

無事アップデートできました!

$ zsh --version
$ zsh 5.0.6 (x86_64-unknown-linux-gnu)

泣く泣くコメントアウト

が、なぜか先のエラーメッセージが消えないので ~/.zprezto/init.zsh の該当部をコメントアウトすることに。

$ vi .zprezto/init.zsh

# Check for the minimum supported version.
# min_zsh_version='4.3.11'
# if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
#   print "prezto: old shell detected, minimum required: $min_zsh_version" >&2
#   return 1
# fi
# unset min_zsh_version

保存して反映ッ!!

source ~/.zshrc

めっちゃ変わってワロタ。

テーマの設定

皆さんはVimの設定を変更するとき、何から弄りますか?
はい!テーマですよね!
zshもテーマから弄りましょう!

以下のコマンドでテーマのプレビューができます。

$ prompt -p

僕は redhat が好みです!
設定しましょう!

vi .zpreztorc

(88行目付近)
zstyle ':prezto:module:prompt' theme 'redhat'

できました!

プロンプトの変更

続いてプロンプトの表示を変えてみます。

vi .vimrc

(以下を追記)
PROMPT="%F{cyan}[%n@%m %d]%f
(๑˃̵ᴗ˂̵)و> "

まとめ

ざっとこんな感じでしょうか。
軽量なフレームワーク zprezto を使って設定の管理を容易にし、最低限テーマとプロンプトを設定してみました。