zsh の tips
インストール
macOS
$ brew install zsh
デフォルトの shell を zsh にする
$ chsh -s $(which zsh)
- root ユーザでこの変更を行うのは root でログインできなくなる可能性がありリスクがある
プラグインで機能を拡張する
- 詳細は /zsh-antigen/
キーバインド
- 詳細は /zsh-keybind/
zsh の構文と具体例
- 詳細は /zsh-syntax/
トラブルシューティング
環境変数を適切に設定しているのに、lsコマンド等で文字化けが起きるとき
- 原因
- 何らかの影響で
localesパッケージが不整合を起こしていることがあった
- 何らかの影響で
- 対応
- 以下のコマンドで
ja_JP.UTF-8に設定し直すことで治った事があった
- 以下のコマンドで
$ sudo dpkg-reconfigure locales
終端文字%が正しくハンドルされなくて描画がずれる時
- 原因
- zsh の機能の1つで終端文字を stdin がキャッチできないとき
%で代替する機能がありハンドルにミスると terminal が崩壊する
- zsh の機能の1つで終端文字を stdin がキャッチできないとき
- 対応
resetを入力する
$ reset
ctrl+a, ctrl+eでzshで移動できない(^A, ^Eが入力されてしまう)
- 原因
ctrl+a,ctrl+eがハンドルされていない
- 対応
.zshrcと.tmux.confで Emacs スタイルを適用すると入力できる
.zshrc
bindkey -e
.tmux.conf
set -g mode-keys emacs
set -g status-keys emacs
sudoしたときユーザ定義のaliasを引き継ぐ
alias sudo="sudo "
zsh compinit: insecure directories...と警告がでる
- 原因
- zsh のモジュールがセキュアな設定になっていないことが原因
- Homebrew の zsh 補完などが原因で出ることがある
- 対応
- compaudit で出力される内容をユーザ only のパーミッションにすることで修正できる
$ compaudit | xargs chmod g-w