おっぱぴぃの日誌

プログラミングのこととか書くブログ.興味があれば何でも書く.

zshrcの設定

前回まで

前回のエントリでzshをターミナルで使うように設定しました.

今回は設定ファイルであるzshrcをいじいじしていきます.

実際に書いてみた

LANG

まずは環境変数LANGを設定します. zshから実行するコマンドがLANGで指定したロケールで動作するようです.

export LANG=ja_JP.UTF-8

PROMPT

次にプロンプトを設定します.色付けをしたいので以下の記述を追加.

# use color
autoload -U colors
colors

これで色を使えるので以下のような記述を追加しました.

local p_cdir="$'\n'%B%F{green}[%~]%f%b"$'\n'
local p_info="%F{yellow}%n@%m%f"
PROMPT="$p_cdir$p_info > "

%B%bで太字,%F%fで色付けが出来るみたい. %~でカレントディレクトリ,%nでユーザ名,%mで計算機名を表示してます.

このプロンプトの設定だとこんな感じの表示に.

f:id:oppapili:20131116200710p:plain

うむ,なかなかいい感じですね.

vcs_info

いやいやしかし.zshを使おう!というのはそもそもgitのブランチがいい感じに表示されてるのが理由だったのだけれども.それはどうやって設定するんだろう?

なにやら右プロンプトとvcs_infoというのが大事そう.早速使ってみる.

zshのプロンプトにGitのブランチ名を表示する - きたけーTechブログ

ここを参考に設定.

autoload -Uz vcs_info
# 表示フォーマットの指定
# %b ブランチ情報
# %a アクション名(mergeなど)
zstyle ':vcs_info:*' formats '[%b]'
zstyle ':vcs_info:*' actionformats '[%b|%a]'
precmd () {
    psvar=()
    LANG=en_US.UTF-8 vcs_info
    [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"
}

これでバージョン管理システムの情報が取れるのだとか.

プロンプトの部分を以下のように変更してみた.

# prompt
local p_cdir=$'\n'"%F{green}[%~]%f"$'\n'
local p_info="%F{yellow}%n@%m%f"
PROMPT="$p_cdir$p_info > %F{cyan}%1v%f"

このときの表示がこれ.

f:id:oppapili:20131116203010p:plain

おー見える見える.

RPROMPT

じゃあこれをいい感じ(右プロンプト)にしてみよう.

どうやらRPROMPTにかけば良さげ.しかも一回書いたら消える設定まであるとか.ほうほう.

# prompt
local p_cdir=$'\n'"%F{green}[%~]%f"$'\n'
local p_info="%F{yellow}%n@%m%f"
PROMPT="$p_cdir$p_info > "
RPROMPT="%F{cyan}%1v%f"
# disappear RPROMPT after command
setopt transient_rprompt

上のように書くと

f:id:oppapili:20131116203713p:plain

おーこれはいい感じ.

とりあえずこれで当初の目的は果たせた. あとはzsh使うのに便利そうな設定を入れて行きます.

git-completion

git-completionを前から使ってたのでそれをzshでも使えるようにします.

curl -O https://raw.github.com/git/git/master/contrib/completion/git-completion.zsh

git-completion.bashのあるところにgit-completion.zshをおきました.依存関係があるのでbashの方も入れておかなくちゃダメみたいです.後は以下の記述で有効にしておく.

autoload -U compinit
compinit -u

おわりに

あとは個人的なaliasの設定を移植して,これでもともと使ってたbashと同じような環境になりました!

今度は友人が使ってた補完された候補間をカーソルキーで選択できるようにしてみたい. まぁそれは気が向いたらで.