ターミナルには種類があり、zsh, csh, bashがあるが、Tab補完をよく使う人、前使ったコマンドをまた使いたいときに便利なのがZshである。 ちなみに最近のmacはデフォルトでzshである。
現在のターミナルがどのshellか確かめる。
$ echo $SHELL
というコマンドを打つと今使っているshellがbashだと
/bin/bash
が帰ってくる。 まずは、今の段階で使えるshell環境を確認する。
$ cat /etc/shells
を打つと今の段階で使えるshellの種類を表示できる。 このリストの中にzshがあればこの次のインストールはしなくても良い
Linux(debian系)の場合
$ sudo apt install -y zsh
mac OSの場合、
$ brew install zsh
でインストールする。
これだけでは、ターミナルは変わらないので、shellを変更する。
ただしここで、パスを間違えると大変なので、よく確認してから打つこと。
まずは次のコマンドでzshのパスを確認する。
$ which zsh
個々で表示されたパスを次のコマンドで設定する。
$ chsh -s <zshのパス>
ここでosを再起動してターミナルを開くと、zshになっている。 そのとき、なにかキーを押せと言われるので、指示に従う。
参考: 漢のzsh
zshの設定は~/.zshrcに書く。
補完を強化する場合以下を~/.zshrcに追記
autoload -U compinit
compinit
以下を追記すると文字を打つたびに補完がされるが、個人的には少し煩わしかったので追記していない。
autoload predict-on
predict-on
過去に打ったコマンドをヒストリに残す。
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
コマンドを途中まで打った状態で、metaキー+pまたは+nキーでそのコマンドを使った履歴が出てくる。
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
bindkey "\\ep" history-beginning-search-backward-end
bindkey "\\en" history-beginning-search-forward-end