zsh : 設定ファイル¶
Last Change: 30-Nov-2014.
author : qh73xe
ここでは zsh を使用していく際に記述していくことになる 設定ファイルに関する情報をまとめます.
目次
設定ファイルの種類に関して¶
zsh の設定ファイルの命名は以下のようになります.
~/.zshebv |
環境変数, 検索パス |
~/.zprofile |
ログイン時に自動実行するスクリプトの設定 |
~/.zshrc |
設定ファイル本体 |
zlogin |
ログイン時に自動実行するスクリプトの設定 | |
- この順番で設定ファイルは読み込まれます.
- 基本的には
.zshrc
に記述していく感じですね
- 基本的には
補完関係¶
zsh の最大の強みはコマンドの補完機能にあるかと思います. とりあえず,最低限の補完機能を有効にするには以下の設定を記述します.
autoload -U compinit && compinit # 補完の有効化
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' '+m:{A-Z}={a-z}' # 大文字と小文字の区別なし
zstyle ':completion:*:processes' menu yes select=2 # kill コマンドのようなものに関しては候補をタブで選択できるようにする
標準の補完機能を強化する¶
標準の補完機能でも十分に強力ですが,私は auto-fu.zsh というプラグイン を導入しています.これを導入するとオプション周りが便利になります.
設定方法¶
GitHub から導入します.
$ git clone https://github.com/hchbaw/auto-fu.zsh.git
.zshrc
に以下の設定を追記します.
if [ -f ~/Documents/ect/zsh/auto-fu.zsh ]; then
source ~/Documents/ect/zsh/auto-fu.zsh
function zle-line-init () {
auto-fu-init
}
zle -N zle-line-init
zstyle ':completion:*' completer _oldlist _complete
fi
補完候補をハイライトする¶
以下の設定を .zshrc
に記述します.
autoload -U compinit
compinit
zstyle ':completion:*:default' menu select=2
コマンド履歴から補完を行う¶
以下の設定を行うと Ctrl-P を使用することでコマンド履歴からの補完を行 うことが可能になります.
例えば,ls のように入力した状態で Ctrl-P を押すと過去に使 用した ls で始まるコマンドを順次表示します.
- 例えば vim で編集しているスクリプトを実行するときに便利
# 履歴から補完を行う
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end
git-flowコマンドの補完¶
mkdir ~/zsh/ && cd ~/zsh/ && git clone https://github.com/bobthecow/git-flow-completion.git && echo "source ~/zsh/.git-flow-completion.zsh" >> ~/.zshrc && exec $SHELL
おまけ¶
zsh を可愛くする¶
とりあえず以下の設定をしてみれば良いかと思います.
# 色設定
autoload -U colors; colors
# もしかして機能
setopt correct
# PCRE 互換の正規表現を使う
set opt re_match_pcre
# プロンプトが表示されるたびにプロンプト文字列を評価、置換する
setopt prompt_subst
# プロンプト指定
PROMPT="
[%n] %{${fg[yellow]}%}%~%{${reset_color}%}
%(?.%{$fg[green]%}.%{$fg[blue]%})%(?!(*'-') <!(*;-;%)? <)%{${reset_color}%} "
# プロンプト指定(コマンドの続き)
PROMPT2='[%n]> '
# もしかして時のプロンプト指定
SPROMPT="%{$fg[red]%}%{$suggest%}(*'~'%)? < もしかして %B%r%b %{$fg[red]%}かな? [そう!(y), 違う!(n),a,e]:${reset_color} "
ちなみに顔文字部分を”はちゅねミク”にすることもできます.:
PROMPT="[%n] %{${fg[yellow]}%}%~%{${reset_color}%}%(?.%{$fg[green]%}.%{$fg[blue]%})%(?!(@゚□゚)ノ <!ZzZz(@ ̄¬ ̄%)ノ <)%{${reset_color}%}
"PROMPT2='[%n]> '
SPROMPT="%{$fg[red]%}%{$suggest%}(@゚△゚%)ノ < もしかして %B%r%b %{$fg[red]%}かな? [そう!(y), 違う!(n),a,e]:${reset_color}"
ようは AA にすれば良いじゃないかと