zsh
の設定はoh-my-zsh
をインストールしてよしなにやってもらってもらってたんですが、プロンプトの見た目をいい感じにするためにしか使用してないと思ったので一度アンインスールして自分で設定することにしました。
やりたいこと
oh-my-zsh
のeastwood
というテーマを使用していたので、こちらと同じようになるように.zshrc
を書きました。
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#eastwood
最終的な.zshrc
.zshrc
export PATH="$HOME/.rbenv/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
# 環境変数
export LANG=ja_JP.UTF-8
export KCODE=u # KCODEにUTF-8を設定
## 色を使用出来るようにする
autoload -Uz colors
colors
## 補完機能を有効にする
autoload -Uz compinit
compinit
## タブ補完時に大文字小文字を区別しない
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
## 日本語ファイル名を表示可能にする
setopt print_eight_bit
#pecoでhistory検索
function peco-select-history() {
BUFFER=$(\history -n -r 1 | peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history
# 履歴ファイルの保存先
export HISTFILE=${HOME}/.zsh_history
# メモリに保存される履歴の件数
export HISTSIZE=1000
# 履歴ファイルに保存される履歴の件数
export SAVEHIST=100000
# 重複を記録しない
setopt hist_ignore_dups
setopt prompt_subst #表示毎にPROMPTで設定されている文字列を評価する
## PROMPT
# vcs_infoロード
autoload -Uz vcs_info
# PROMPT変数内で変数参照する
setopt prompt_subst
# vcsの表示
zstyle ':vcs_info:*' enable git svn hg bzr
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' stagedstr "+"
zstyle ':vcs_info:*' unstagedstr "*"
zstyle ':vcs_info:*' formats '[%b%c%u]'
zstyle ':vcs_info:*' actionformats '(%b(%a)%c%u)'
# プロンプト表示直前にvcs_info呼び出し
precmd () {
psvar=()
LANG=en_US.UTF-8 vcs_info
[[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"
}
#add-zsh-hook precmd _update_vcs_info_msg
PROMPT="%F{cyan}%1v%f%F{green}[%~]%f%1 %B$%b "
# RVM settings
if [[ -s ~/.rvm/scripts/rvm ]] ; then
RPS1="%{$fg[yellow]%}rvm:%{$reset_color%}%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt)%{$reset_color%} $EPS1"
else
if which rbenv &> /dev/null; then
RPS1="%{$fg[yellow]%}rbenv:%{$reset_color%}%{$fg[red]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$reset_color%} $EPS1"
fi
fi
こんな感じになりました
参考にしたもの
https://qiita.com/knao124/items/04e3625eb12237de5743
https://github.com/ohmyzsh/ohmyzsh/blob/master/themes/eastwood.zsh-theme