zshの初期設定
Page content
ちょっとしたashの設定です。
Homebrewからインストール
brew install zsh
シェル一覧リストを追加
sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
インストールしたzshに設定
chsh -s /usr/local/bin/zsh
Changing shell for ruedap.
Password for ruedap: パスワードを入力する
zsh-completionsのインストール
補完機能の強化
brew install zsh-completions
~./zshrc
# zsh-completions(補完機能)の設定
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
autoload -Uz compinit
compinit
fi
zsh-syntax-highlighting のインストール
コマンドにシンタックスハイライトをつける
brew install zsh-syntax-highlighting
~./zshrc
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
zsh-autosuggestions のインストール
ターミナルのコマンド履歴に基づいてコマンド候補を表示、入力補完もしてくれる。
brew install zsh-autosuggestions
~./zshrc
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
色を使用出来るようにする
~./zshrc
autoload -Uz colors && colors
日本語ファイル名を表示可能にする
~./zshrc
setopt print_eight_bit
cd なしでもディレクトリ移動
~./zshrc
setopt auto_cd
ビープ音の停止
~./zshrc
setopt no_beep
ビープ音の停止(補完時)
~./zshrc
setopt nolistbeep
cd [TAB] で以前移動したディレクトリを表示
~./zshrc
setopt auto_pushd
ヒストリ (履歴) を保存、数を増やす
~./zshrc
HISTFILE=~/.zsh_history
HISTSIZE=100000
SAVEHIST=100000
同時に起動した zsh の間でヒストリを共有する
~./zshrc
setopt share_history
直前と同じコマンドの場合はヒストリに追加しない
~./zshrc
setopt hist_ignore_dups
同じコマンドをヒストリに残さない
~./zshrc
setopt hist_ignore_all_dups
スペースから始まるコマンド行はヒストリに残さない
~./zshrc
setopt hist_ignore_space
ヒストリに保存するときに余分なスペースを削除する
~./zshrc
setopt hist_reduce_blanks
補完で小文字でも大文字にマッチさせる
~./zshrc
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
パス名の補完候補時パス名を選択
[TAB] でパス名の補完候補を表示したあと、 続けて [TAB] を押すと候補からパス名を選択できるようになる 候補を選ぶには [TAB] か Ctrl-N,B,F,P
~./zshrc
zstyle ':completion:*:default' menu select=1
コマンドのスペルを訂正する
~./zshrc
setopt correct
cd した先のディレクトリをディレクトリスタックに追加する
cd [TAB] でディレクトリのヒストリが表示されるので、選択して移動できる ※ ディレクトリスタック: 今までに行ったディレクトリのヒストリのこと
~./zshrc
setopt auto_pushd
pushd したとき、ディレクトリがすでにスタックに含まれていればスタックに追加しない
~./zshrc
setopt pushd_ignore_dups
拡張 glob を有効にする
拡張globを有効にする 拡張globを有効にすると # ~ ^ もパターンとして扱われる glob: パス名にマッチするワイルドカードパターンのこと ※ たとえば mv hoge.* ~/dir というコマンドにおける * のこと ~./zshrc
setopt extended_glob
単語の一部として扱われる文字のセットを指定する
単語の一部として扱われる文字のセットを指定する ここではデフォルトのセットから / を抜いたものにしている ※ たとえば Ctrl-W でカーソル前の1単語を削除したとき / までで削除が止まる ~./zshrc
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
コマンド実行結果のあとに空行を挿入する
~/.zshrc
add_newline() {
if [[ -z $PS1_NEWLINE_LOGIN ]]; then
PS1_NEWLINE_LOGIN=true
else
printf '\n'
fi
}
precmd() { add_newline }