zshへの移行
zsh 最強説
特に理由はありませんが、知り合いがzsh最強説を強く主張するので zshに移行してみました。
zshのインストール
macOSではHomebrewをインストールしていれば、簡単にzshのインストールが可能です。
以下は、関連するツールもまとめて導入しています。
$ brew install --without-etcdir zsh $ brew install zsh-autosuggestions zsh-completions zsh-syntax-highlighting colordiff reattach-to-user-namespace
zsh だけ、 without-etcdir を指定しているのは、勝手にパスを書き換えてしまわない ためです。(詳細は、 「 Mac標準のbashからzshに変えた時のメモ 」を参照)
oh-my-zshのインストール
zsh上でのテーマなどを扱える oh-my-zshをインストールします。
テーマは Vimもターミナルも Gruvboxを使っているので、以下のテーマを 設定しました。
設定などなど
標準のシェルをbashからzshに切り替えます。いくつかやり方がありますが、macOS 「設定」から「ユーザーとグループ」を使うのが一番簡単です。
「ユーザーとグループ」を開くと左下の鍵のマークをクリックして管理者パスワード
を入力して変更を許可します。次にユーザーを選択して Ctrl + クリックで「詳細
オプション」を選択します。ログインシェルの指定があるので、 /usr/local/bin/zsh
を指定します。
次に、 .zprofile
の設定です。
# 補完機能 autoload -U compinit compinit # prompt PROMPT='%m:%c %n$ ' # コマンド履歴 HISTFILE=~/.zsh_history HISTSIZE=6000000 SAVEHIST=6000000 setopt hist_ignore_dups # ignore duplication command history list setopt share_history # share command history data # コマンド履歴検索 autoload history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end # alias alias diff="coloddiff"
次に、 .zshrc
の設定です。
注意点は、 zshを先に書いたような導入をすると、 /usr/local/bin
にパスが通っていないので、追加する必要があります。
# パスの設定 path=( /usr/local/bin $path ) # Path to your oh-my-zsh installation. export ZSH=/Users/yostos/.oh-my-zsh # テーマの設定 ZSH_THEME="gruvbox-powerline" POWERLINE_HIDE_GIT_PROMPT_STATUS=false ZSH_POWERLINE_SHOW_USER=false ZSH_POWERLINE_SHOW_IP=false # ZSH_POWERLINE_SHOW_TIME=true # ZSH_POWERLINE_SINGLE_LINE=true # ZSH_POWERLINE_SHOW_GIT_STATUS=true # ZSH_POWERLINE_SHOW_GIT_BRAHCH_ONLY=true # ZSH_POWERLINE_SHOW_RETURN_CODE=true ZSH_POWERLINE_SHOW_OS=true ZSH_POWERLINE_DIRECTORY_DEPTH=2 # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( brew brew-cask cdd gem git rbenv vagrant ) source $ZSH/oh-my-zsh.sh export XDG_CONFIG_HOME=~/.config # Location export TZ="Asia/Tokyo" export LANG=ja_JP.UTF-8 # 日本語ファイル名を表示可能にする setopt print_eight_bit # cdなしでディレクトリ移動 setopt auto_cd # ビープ音の停止 setopt no_beep # ビープ音の停止(補完時) setopt nolistbeep # cd -<tab>で以前移動したディレクトリを表示 setopt auto_pushd # Ruby export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" # Python export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" # Node export PATH=$HOME/.nodebrew/current/bin:$PATH # Initialization for FDK command line tools.Mon Jan 15 20:05:04 2018 FDK_EXE="/Users/yostos/bin/FDK/Tools/osx" PATH=${PATH}:"/Users/yostos/bin/FDK/Tools/osx" export PATH export FDK_EXE export VIMCONFIG=~/.config/nvim export VIMDATA=~/.local/share/nvim # Use Neovim as "preferred editor" export VISUAL=nvim # Use Neovim instead of Vim or Vi alias vim=nvim alias vi=nvim # FZFのファイル一覧取得コマンドに RipGrepを指定 # RipGrepは.gitignoreを結果に反映してくれる。 export FZF_DEFAULT_COMMAND='rg --files'
zshで幸せになれたか?
bash-completion を使っていたので劇的に変わったわけではないのですが、 それでも TABをタイプするとヌルヌルとコマンドやオプションの 候補を表示してくれたり補完してくれたりするので生産性は上がります。
また、テーマも簡単に切り替えが可能で、bashでも使っていた gitのステータス とブランチの表示など標準で用意されているので見栄えは随分とよくなります。
プラグインの管理もできるようなので、これから本格的にbashから移行して 環境を整えていこうかなと思います。