zsh についてまとめたい
.zshenv と .zprofile と .zshrc
この記事 がとてもわかりやすい。
シェルの種類 | 読み込まれる設定ファイル |
---|---|
ログインシェル | .zshenv, .zshrc, .zshprofile |
インタラクティブシェル | .zshenv, .zshrc |
シェルスクリプト | .zshenv |
とりあえず zshprofile に入れといて困ったら zshrc や zshenv に移していけば良さそう。
zsh のオプション
オプション とは zsh の振る舞いを変化させる機能。 setopt
, unsetopt
コマンドで切り替えることができる。オプション名は大文字小文字は無視して、アンダースコアも無いのと同じ扱いになる。この記事が詳しい。
history 関連の設定
入力内容とマッチするコマンドを検索する control + r
はとてもよく使うけど連打していると目当ての検索結果を飛ばしてしまうことがある。デフォルトでは control + s
で検索を戻ることができるはずだが、この操作をしても戻ることができない。 control + s
が X-OFF というハードウェアフロー制御文字を送信してしまうのが原因らしい。この制御文字は、ハードウェアに対して、データ送信を一旦停止させることを指示するらしい。ターミナルで実際に使われているのはみたことがない。~control + s~ でフロー制御を行わないようにするには stty という UNIX コマンドを使うと良いらしい。
stty stop undef # X-OFF を指示する制御文字(デフォルト control + s)を未定義にする
stty start undef # X-ON を指示する制御文字(デフォルト control + q)を未定義にする
zsh のオプションを使うと、もう少し端的に書くことができる。
setopt no_flow_control
あとはタブごとに違う履歴を持ったりしないように sharehistory の設定も入れておくと便利。
プラグイン
zplug
https://github.com/zplug/zplug
zsh のプラグイン(パッケージ)マネージャ。インストールしてみる。
brew install zplug
インストール後のメッセージは下のような感じ。
In order to use zplug, please add the following to your .zshrc:
export ZPLUG_HOME=/opt/homebrew/opt/zplug
source $ZPLUG_HOME/init.zsh
あとは適当にパッケージをインストールしてロードすれば良い。
zplug "zsh-users/zsh-autosuggestions"
zplug install
zplug load
ローカルファイルの読み込みも管理できるらしくて、ごちゃごちゃした設定ファイルを整理するにはちょうど良さそうである。
zsh-autosuggestions
https://github.com/zsh-users/zsh-autosuggestions
コマンドを叩いている途中に、履歴を参照してサジェストしてくれる。 TAB
や control + e
でサジェストを受け入れる。細かい設定もできるらしいけど特に触らなくてもある程度便利になるのでそれで良いかなと思う。
zplug "zsh-users/zsh-autosuggestions"
zsh-peco-history
https://github.com/jimeh/zsh-peco-history
インクリメンタルサーチの UI を peco に取り替える。emacs の ivy とかに似ている。事前に brew install peco とかで peco をインストールする必要がある。これを設定するなら control + s
を無効化しなくても良いかもしれない。
zplug "jimeh/zsh-peco-history", defer:2
その他
zcompile