【Mac】とりあえずzsh環境で最低限欲しいものを入れておきたい(2024年版)
https://1.bp.blogspot.com/-SgT2G_vDGwE/XQjt4RWH1TI/AAAAAAABTNc/0He0eUi8-7QAd0RDvxWGA1MBzphu9hvsgCLcBGAs/s800/animal_chara_computer_penguin.png
【前提】
こちらの記事とこちらの記事からの抜粋およびアップデートになっています。とりあえずzsh環境で最低限必要なものを揃えたい方はよかったら参考にしてください。
【Homebrewのインストール】
兎にも角にもHomebrewをインストールしないと始まらないですよね。公式ページのコマンドをコピーして実行してみます
code:test.sh
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(途中略)
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/tascript/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
https://docs.brew.sh
next stepsで指定された2つのコマンドを実行するとbrewコマンドのパスが設定されます。
ちなみに、$ eval "$(/opt/homebrew/bin/brew shellenv)"ではこちらのシェルスクリプトが実行され、
シェル環境ごとのbrewコマンドに関する環境変数の設定が実施されます。これを.zshprofileに記載することで、シェル起動の際に環境変数設定がされるというわけです。zshの場合だとこれらの環境変数が設定および更新されます。便利。
【シンタックスハイライト、コマンド履歴の入力補完、コマンド履歴のフィルタリング】
zsh-syntax-highlightingzsh-syntax-highlighting、zsh-autosuggestions、pecoを利用します。それぞれbrew installコマンドで必要なパッケージをインストールします。最低限の設定ですが、下記に~/.zshrcの設定例を記載します。
code:.zshrc
# プラグインの実行
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# シンタックスハイライトの基本設定
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)
# pecoを利用したコマンド履歴を「Control + r」で呼び出す 
function peco_history() {
BUFFER=$(history -n -r 1 | peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco_history
bindkey '^r' peco_history
設定後$ exec $SHELl -lでzshを起動するとシンタックスハイライト、入力補完、コマンド履歴のフィルタリングができるようになっています。pecoは標準入力をもとに「Control + r」コマンドで履歴の予測変換を実施します。定義した関数およびコマンドの解説をすると、
1. peco_history関数でzshのコマンド履歴を1から最新までを出力し、pecoの標準入力に渡す
2. pecoではキーボード入力による標準入力で1のデータをフィルタリングする
3. zle(Zsh Line Editor)を利用して、関数の登録及び関数呼び出し用のキーバインドを設定する
となっています。
ここまで実施しておけば、最低限zshが動作してそこそこ便利な設定になっているでしょう。
あとは、のんびり育ててあげてください。
【余談】
新しいPCになったけど、zshの設定残し忘れた!という場合は、あせらず上記から初めて心を落ち着けてください。今年もよろしくお願いします。