Macに乗り換えた時のshell環境のメモ


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 ファイルに書き込みます。

.zpreztorc
zstyle ':prezto:module:prompt' theme 'sorin'

Gitのブランチを表示するには、Preztoのモジュールにgitを追加する。

.zpreztorc
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 を直接変更する場合。

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に以下記載がありました。

~/.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 に変更すればうまく動きました。

~/.zshrc
# 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 にキーバニンドを割り当ててます。

~/.zshrc
# 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 にキーバニンドを割り当てます。

~/.zshrc
# peco-snippets
function peco-snippets() {
    BUFFER=$(grep -v "^#" ~/.command | peco --query "$LBUFFER")
    zle reset-prompt
}
zle -N peco-snippets
bindkey '^t' peco-snippets