progrhyme's tech blog

主にIT関連の技術メモ

fish shellに手を出しかけたけど、気づいたらOh My ZshでZsh環境をカスタマイズしていた

はじめに〜fish shellを少しだけ試してみた

きっかけは曖昧だけど、たぶん身近でfish shellユーザーが結構増えている(ような気がした)ことだったと思う。

最近自分でもfish shellを少しだけ試して、まあ悪くないんじゃないかと思ったけど、UbuntuデスクトップだとPowerlineフォントで何かがおかしくて、特殊文字が上手く表示されない感じになった。
その後、macOSでも試したけど、なんだか思ったよりカラフルにならずに、調整が必要そうな感じだった。 たぶん、もう少し頑張ればもっといい感じになったんだろうと思うけど。

それでも、fish良いなと思った機能がいくつかあった:

  • コマンドの自動補完。ヒストリから直近で最もマッチするものを引っ張ってくれるようだ
  • パスの短縮: ~/my/repos/hoge -> ~/m/r/hoge みたいにしてくれる

あと、テーマのスクリーンショットを見ていると、bobthefishとかはカラフルで良いなと思った。

むしろZsh環境を見直したくなった

……が、一旦冷静になって考え直してみると、「それ、別にZshでもできるんじゃないか?」と思った。

fish shellも段々ユーザーが増えて、コミュニティも成長しているんじゃないかと思うけど、Zshの方も一日の長があるし、プラグインとかたくさんあって開発・ユーザーコミュニティが大きいイメージがある。

そもそも私の場合、何年か前からクライアント端末ではZshを主に使うようにしたけど、.zshenv, .zshrcはその初期に適当にWeb検索して拾ってきたものを微調整しただけで、それまでのBashの設定に毛が生えたぐらいの設定しかしていなかった。 フレームワークプラグインも何も使っていない状態だった。

そしてOh My Zsh

Webで検索していると、パスの短縮については、Oh My Zshであれば組込みのshrink-pathというプラグインであればできそうだということがわかった。

Oh My Zshは著名なZshフレームワークで、カラフルなテーマもあるし、プラグイン機構もあるので、これを使ってZsh環境を強化すれば大抵のことはできるだろうと思った。

やってみたらできた

そんなわけで、Oh My Zshをインストールし、テーマを設定し(agnosterにした)、shrink-pathプラグインを使う設定をし、zsh-autosuggestionsカスタムプラグインを入れ、後にzsh-syntax-highlightingも入れたら、もうこれでいいんじゃないかという気持ちになった。

セットアップ時のログはここにある(*1)。

現状

現在の私のターミナル環境は、MacBookだと下のような感じになっている。

2020-05-24現在、MacBookでのターミナル操作画面のキャプチャ動画
2020-05-24現在、MacBookでのターミナル操作画面

とりあえず、fish shellで自分が良いなと思ったことは全部できた。 他にどんな機能があるのか、大して調べてもいないけど。

終わりに

fish shellに手を出そうと試みたが、結果としてZsh環境が少しリッチになった。
作業効率も少しは上がっているのではないかな。(と、信じたい)

Zshの機能はまだまだ全然使い倒した感じがしないので、もう少し基本的なところから見直したい気もしている。

余談: Macの端末アプリについて

Macの端末アプリはずっと標準のターミナル.appを使っていたのだけど、最近iTerm2を試している。
先達に倣ってShell Integrationを有効にしているけど(*2)、まだあまり恩恵を感じてはいない。

脚注

*1:数日後にアーカイブの方に移動してパスが変わっていると思います。

*2:参考: 俺よりiTerm使いこなしてるやつおる? - ハイパーマッスルエンジニアになりたい