Macに乗り換えて、シェル環境を色々と触ったので、忘備録として。
(ほとんど100万番煎じですが)
サマリー
- zsh インストール
- prezto インストール
- VSCode setting.json修正
- ~/.bashrc ~/.bash_profile → ~/.zshrc へ引っ越し
- gcloud SDK 起動しない。。
- peco を使った便利機能
zsh インストール
- brew で最新の zsh インストール
$ brew install zsh
-
/usr/local/bin/zsh
にインストールされるので、/etc/shells
にシェルを追記する。
$ sudo vim /etc/shells
/usr/local/bin/zsh
を追記する
- 使うシェルを切り替える
以下コマンドでシェルを切り替える
$ chsh -s /usr/local/bin/zsh
prezto インストール
prezto は zsh を設定するための framework で、こまけぇこたぁいいから、簡単に良い感じでそれっぽくしてくれ。人向き
- git からダウンロード
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
- 既存の
.z~
系のファイルとシンボリックリンクを作る
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
- テーマを変える
いい感じなのは、 pure か steeef か sorin だそうです。
ここ にテーマがあります。
テーマが決まったら、.zpreztorc
ファイルに書き込みます。
zstyle ':prezto:module:prompt' theme 'sorin'
Gitのブランチを表示するには、Preztoのモジュールにgitを追加する。
zstyle ':prezto:load' pmodule \
'environment' \
'terminal' \
'editor' \
'history' \
'directory' \
'spectrum' \
'utility' \
'completion' \
'prompt' \
'git'
こんな感じになる。
VSCode setting.json修正
- VSCodeの起動シェルを変更する。
Code → 基本設定 → 設定 で以下を /usr/local/bin/zsh
に変更
Terminal › Integrated › Shell: Linux
Terminal › Integrated › Shell: Osx
settings.json を直接変更する場合。
"terminal.integrated.shell.linux": "/usr/local/bin/zsh",
"terminal.integrated.shell.osx": "/usr/local/bin/zsh",
~/.bashrc ~/.bash_profile → ~/.zshrc へ引っ越し
aliase や環境変数や関数やらなんやら、要るものを持っていきます。
gcloud SDK 起動しない
公式の ここ でインストールし、
bash の時は、~/.bashrcに以下記載がありました。
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/Users/andormeda/y/google-cloud-sdk/path.bash.inc' ]; then . '/Users/andormeda/y/google-cloud-sdk/path.bash.inc'; fi
# The next line enables shell command completion for gcloud.
if [ -f '/Users/andormeda/y/google-cloud-sdk/completion.bash.inc' ]; then . '/Users/andormeda/y/google-cloud-sdk/completion.bash.inc'; fi
何て事はなく、bash を zsh に変更すればうまく動きました。
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/Users/andormeda/y/google-cloud-sdk/path.zsh.inc' ]; then . '/Users/andormeda/y/google-cloud-sdk/path.zsh.inc'; fi
# The next line enables shell command completion for gcloud.
if [ -f '/Users/andormeda/y/google-cloud-sdk/completion.zsh.inc' ]; then . '/Users/andormeda/y/google-cloud-sdk/completion.zsh.inc'; fi
peco を使った便利機能
大分有名ですが、history をインクリメンタルサーチするやつです。
- peco のインストール
brew でインストール
brew install peco
~/.zshrcに以下を追記
control + r
にキーバニンドを割り当ててます。
# peco peco-select-history
function peco-select-history {
BUFFER=`history -n -r 1 | peco --query "$LBUFFER"`
CURSOR=$#BUFFER
zle reset-prompt
}
zle -N peco-select-history
bindkey '^r' peco-select-history
よく実行するコマンドをテキスト「~/.command」にまとめておいて、同じくインクリメンタルサーチして使えます。
control + t
にキーバニンドを割り当てます。
# peco-snippets
function peco-snippets() {
BUFFER=$(grep -v "^#" ~/.command | peco --query "$LBUFFER")
zle reset-prompt
}
zle -N peco-snippets
bindkey '^t' peco-snippets