この記事は、上智大学エレクトロニクス研究部Advent Calendar第12日目の記事です。
tl;dr
この記事に書いてある内容は、GitHubでも公開しています。以下のコマンドでインストールできるので、長くて読めないよ!という方はこちらを試してみてください。
cd ~/Documents
git clone git@github.com:Tsutomu-Ikeda/settings
cd settings/unix/setup
make install
なぜシェルに zsh
を使うか
開発をしていて触れる時間が長いもので一二を争うものといえばシェルです。 bash
や fish
、 xonsh
など様々なシェルに触れてきましたが、僕が一番オススメするのは zsh
です。なぜなら、一番カスタマイズが行いやすく、有志によるツールの開発も活発で、かつMacOSに標準でインストールされているからです。
.zshrc
の中身
zsh
でカスタマイズしている中でおすすめの設定をいくつか紹介します。全体を見たい方は GitHubの .zshrc をご覧ください。
setopt関連
setopt auto_param_slash # ディレクトリ名を補完したとき自動的にスラッシュを付ける
setopt mark_dirs
setopt list_types
setopt auto_menu
setopt auto_param_keys
setopt interactive_comments
setopt magic_equal_subst
setopt print_eight_bit # 日本語を表示できるようにする
setopt hist_ignore_space # コマンド先頭が空白文字の場合履歴から除外する
setopt hist_reduce_blanks # 連続した空白文字をひとつにする
setopt hist_ignore_dups # 同じコマンドが連続したとき、一回しか出力しないようにする
setopt hist_find_no_dups # インクリメンタルサーチで同じコマンドが結果に出ないようにする
setopt complete_in_word # カーソルの位置が単語の途中でも単語全体で補完を行うようにする
setopt always_last_prompt # 補完候補をその場で表示し、選択し終わったら画面から消すようにする
setopt nonomatch # 補完失敗時のエラーを出さないようにする
alias関連
alias rebirth='echo Reincarnate zsh... ; rm -rfv ~/.antigen/ ; [ ! -d ~/.antigen ] && mkdir -p ~/.antigen && curl -L git.io/antigen > ~/.antigen/antigen.zsh; source ~/.zshrc'
alias nconsole='tmux new-s -s Console'
# 設定を反映するためのエイリアス
alias restart=". ~/.zshrc"
# 長いコマンドの省略
alias docker-compose-dev='docker-compose -f docker-compose.dev.yml'
# 日本語のファイル名でも表示できるようにする
alias tree="tree -N"
# 色付き出力に対応する
alias less="less -R"
# ls関連、h: ファイルサイズをKB, GB表示する。glsはGNU版のlsをMacにインストールした場合
alias ls='gls --color'
alias ll='gls -lh --color'
alias la='gls -lah --color'
# ファイル削除をゴミ箱に移動に変える。 `brew install macos-trash` が必要
alias rm="trash"
antigenモジュール関連
fish
の使い心地の良さを再現するために色々入れています。
zsh-users/zsh-syntax-highlighting # コマンドの打ち間違いを分かりやすくする(存在しないコマンドが赤くなる)
zsh-users/zsh-autosuggestions
zsh-users/zsh-completions
zsh-users/zsh-history-substring-search # インクリメンタルサーチをコマンド入力後上矢印を押すことでできるようにする
キーバインド関連
bindkey -e
bindkey "^?" backward-delete-char
bindkey "^U" backward-kill-line
bindkey '^[[Z' reverse-menu-complete
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
bindkey "$terminfo[kcuu1]" history-substring-search-up
bindkey "$terminfo[kcud1]" history-substring-search-down
bindkey '^[[L' forward-word
bindkey '[C' forward-word
bindkey '[D' backward-word
cdpath
の設定
ホームディレクトリ、ドキュメントディレクトリ、開発ディレクトリ(GitHubのソースを落としてきたときに使うディレクトリ)直下のディレクトリに素早く移動できるようにします。
cdpath=($HOME $HOME/Documents $HOME/Development $cdpath)