zsh
目次
zsh
MacOSXでログインシェルをzshに変える
- システム環境設定
- ユーザとグループ
- 対象ユーザを右クリック
- 詳細オプションを選択
- ログインシェルを
/bin/zsh
に変更する
homebrewのzsh補完を有効にする
.zshrcに追加
fpath=($(brew --prefix)/share/zsh/site-functions $fpath) autoload -U compinit compinit
以下のコマンドを実行
ln -s $(brew --prefix)/Library/Contributions/brew_zsh_completion.zsh $(brew --prefix)/share/zsh/site-functions/_brew
zsh起動時にエラーが出る場合
zsh compinit: insecure directories, run compaudit for list.
このようなエラーが出る場合はcompauditと打って調べる
~ i$ compaudit There are insecure directories: /usr/local/share/zsh/site-functions /usr/local/share/zsh
表示されるディレクトリの権限を755に修正する。
npmのzsh補完を有効にする
.zshrcに追加
if [ ! -f ~/.npm_completion ]; then npm completion > ~/.npm_completion fi source ~/.npm_completion
bashとの違い
変数でのスペースの扱い
bashではスペースを含むと別単語として展開される。““で囲むとひと塊りの文字列として展開される
$ w="echo hoge" $ $w hoge fuga $ "$w" echo hoge fuga: command not found
zshではスペースを含んでいてもひと塊りの文字列として展開される
$ w="echo hoge fuga" $ $w zsh: command not found: echo hoge fuga
変数のみで配列全体を表現
bash
$ A=(a b c) $ echo $A a $ echo ${A[@]} a b c
zsh
$ A=(a b c) $ echo $A a b c
セパレータを変更できる。IFSの変更が不要
$ A=(a b c) $ echo ${(j/,/)A} a,b,c
zsh.txt · 最終更新: 2020/07/20 11:29 by nullpon