macOS High Sierraのzshでちょっとハマったのでメモ

2年経って会社の開発マシンがリプレースの時期になったので今日からMacBook Pro (15-inch, 2017) Touch Barモデルで開発している。 思ったほど困ってないがzshの設定で少しハマったのでメモ。

ログインシェルをzshにできない

% brew install zsh
% chsh -s `which zsh`

としてもiTermを立ち上げ直すと $SHELL = /bin/bash に戻っている。

% sudo vim /etc/shells

/usr/local/bin/zsh # 追記

これで使えるようになった。

aliasと同名の関数を定義できない

Sierra環境で使っていたzshrcをそのまま使おうとすると

% source ~/.zshrc
/Users/shiroyama/.zshrc:188: defining function based on alias `ssh'
/Users/shiroyama/.zshrc:188: parse error near `()'

というようなパースエラーが出るようになった。たしかに alias sshssh() {} が存在する。 zshのことは全く詳しくないのでエラーでググったらどうやら関数に明示的に function ssh() {} のように function とつけてやれば良いようだ。 全部そのようにしたら晴れてエラーが解消した。

ちなみにHigh Sierraだからじゃなくて普通に考えてzshのバージョンだと思う。

% zsh --version
zsh 5.4.2 (x86_64-apple-darwin17.3.0)

Touch Barモデル雑感

よくESCがないとツライと聞くが、僕はESCC-jに割り当てているのでvimを使う上では何ひとつ困らない。 ただファンクションキーがないのは明確につらくて、カナ変換とかで思わず手がF7を探しちゃうし明るさも音量も調整にまごつく。 デスクに座ってる限りは外付けキーボードとトラックパッドを使っているので違いは感じないが携帯したときにストレスを感じるかもしれない。

あと、ポートがUSB-C * 4だけというのが一番気が狂いそうになる。電源もイーサネットアダプタ1もディスプレイケーブルもスマホも何もかも全部ぜーんぶUSB-Cである。 何年後かにこの世にほとんどUSB-Cだけが生き残っていたらもう少し生きやすいのかもしれないが、その前にAppleさんはiPhoneをUSB-Cにしなかったのはなんでなんですかね… そんくらいかな!

なお古いMacBookを返却する際にベタベタに貼りまくったステッカーを全部はがし終わるのに60分要した。 もう二度とこんなアホなマネはせえへんぞとステッカーをはがすたびに思うがどうしても再びやってしまうのは自分でも理解できない。


  1. ワイヤレスが不安定なのがストレスなのでデスクに座っているときはMacBookでも好んで有線接続している。