身内用にzshrcの設定とその解説を晒す。使用するOSに合わせて適宜変更すべし。
.zshrc 全文
#Display&General
RPROMPT="%F{190}%M%~"
export LANG=ja_JP.UTF-8
bindkey -v
setopt nolistbeep
setopt correct
chpwd() {ls -ltr}
#History
HISTFILE=~/.zsh_history
HISTSIZE=1000
SAVEHIST=1000
#Syntax-Highlight
source ~/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
typeset -A ZSH_HIGHLIGHT_STYLES
ZSH_HIGHLIGHTING_HIGHLIGHTERS=(main brackets cursor)
ZSH_HIGHLIGHT_STYLES[path]='fg=123,underline'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=190,bold'
ZSH_HIGHLIGHT_STYLES[command]='fg=190'
ZSH_HIGHLIGHT_STYLES[alias]='fg=165'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=178'
#alias
alias ll="ls -ltr"
alias la="ls -al"
alias sz="source ~/.zshrc"
alias vz="vim ~/.zshrc"
alias vv="vim ~/.vimrc"
alias md="mkdir"
alias gc="git checkout"
alias python="python3"
#Keybinds
[[ -n ${key[End]} ]] && bindkey "${key[End]}}" end-of-line
[[ -n ${key[Home]} ]] && bindkey "${key[Home]}}" beginning-of-line
#Git
## git-prompt
source ~/.zsh/git-prompt.sh
## git-completion
fpath=(~/.zsh $fpath)
zstyle ':completion:*:*:git:*' script ~/.zsh/git-completion.bash
autoload -Uz compinit && compinit
## git-prompt's options
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWUNTRACKEDSTATE=true
GIT_PS1_SHOWSTASHSTATE=true
GIT_PS1_SHOWUPSTREAM=auto
## git-prompt display
setopt PROMPT_SUBST; PS1='%F{010}%T%F{027}[%n@%m]%f %F{red}$(__git_ps1 "(%s)")%f%#'
画面表示と基本設定
#####RPROMPT="%F{190}%M%~"
画面右側に表示されるプロンプトの設定。
ホスト名(%M)とカレントディレクトリ(%~)を黄色で表示。%F{190}の数値(000~255)を変更すると色を変えられる。詳しくはzsh colors
で画像検索。
#####export LANG=ja_JP.UTF-8
→ 環境変数LANG
の設定。「言語環境を日本語にするよ〜」って感じ。
#####bindkey -v
→ キーバインドをvimライクにする。vimの操作方法に関して理解が浅いので正直使いこなせてない。
#####setopt nolistbeep
→ 補完候補を表示するときに音を鳴らさない。Tabを叩くたびに鳴かれるとうるさいので。
#####setopt correct
→ コマンドを間違えて叩いたときに訂正するかどうか聞く。たまに便利。
#####chpwd() {ls -ltr}
→ cd
でディレクトリを移動したら自動でls -ltr
する。ディレクトリ内の項目数が多いと画面が一気に流れるけど、かなり便利。
#履歴関連
この辺の設定はそんなにいじらなくてもいいかも...?
#####HISTFILE=~/.zsh_history
→ コマンド履歴を~/.zsh_history
に保存する。
#####HISTSIZE=1000
→ メモリ上に1000件まで履歴を保存する。(この件数を超えると検索で表示されなくなる)
#####SAVEHIST=1000
→ HISTFILEに1000件まで履歴を保存する。
#シンタックスハイライティング関連
先にzsh-users/zsh-syntax-highlighting
リポジトリをホームディレクトリ上にgit clone
しておかないとこれらの設定は機能しない。
#####source ~/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
→ zsh-syntax-highlightingを読み込む。
#####typeset -A ZSH_HIGHLIGHT_STYLES
→ シンタックスハイライトに使う変数(連想配列)の宣言。いわゆる「おまじない」。
#####ZSH_HIGHLIGHTING_HIGHLIGHTERS=(main brackets cursor)
→ ハイライトする場所の設定。
この場合、コマンドやパスなど(main)・かっこの組(brackets)・カーソル(cursor)がハイライトされる。
他にも、root限定の設定(root)やコマンドライン全体(line)、自分で定義したパターン(pattern)が選択できる。
詳しくはzsh-syntax-highlighting/docs
以下のファイルを参照のこと。
#####ZSH_HIGHLIGHT_STYLES[path]='fg=123,underline'
→ 実際に存在するパスは水色(123)の下線つきで表示する。
#####ZSH_HIGHLIGHT_STYLES[precommand]='fg=190,bold'
→ sudo や builtin などは黄色(190)の太字で表示する。
#####ZSH_HIGHLIGHT_STYLES[command]='fg=190'
→ コマンドは黄色(190)の文字で表示する。
ここまでの内容をまとめて確認するとこんな感じ。
このコマンドは絶対に実行しないでね。
#####ZSH_HIGHLIGHT_STYLES[alias]='fg=165'
→ 自分で定義したエイリアスはピンク(165)で表示する。
#####ZSH_HIGHLIGHT_STYLES[builtin]='fg=178'
→ シェルのコマンド(pwd, cdなど)はオレンジ(178)で表示する。
#エイリアス
エイリアスを定義することによって、コマンドの短縮形などの設定ができる。積極的に活用しよう。
取り立てて説明する必要もないので、簡単なコマンドの説明のみをここに記す。
alias [別名]=[実際に実行されるコマンド]
Windows教信者の方々は、dir="ls -l"
やらcls=clear
、findstr=grep
とかのエイリアスを張っておけばいいんじゃないですかね。知らんけど。
#キーバインド
デフォルトだとENDとHOMEがうまく動作してくれないので設定してるけど上手くいかないので目下検討中。無視してもいい。
#Git関連
この記事を参考にしてます。現在作業中のブランチをコマンドライン上に表示したり、補完してもらうための設定。
PS1=
以降の記述を変更すると画面左側のプロンプトの表示を変えられる。現行の表示はこんな感じ。
Gitリポジトリ外
Gitリポジトリ内
RPROMPTで指定した内容は、こんな感じに右側に詰めて表示される。ターミナルの画面が小さいと詰まって見にくくなるかも(?)
#おわりに
.zshrcの内容は使いにくいなーと思ったタイミングで頻繁に書き換えているので、あくまでこの設定は一例に過ぎません。いろいろいじって良きzshライフを!