快適なターミナル環境のために
git の管理をしたり、サーバーに入ったり、ファイルを書き換えたり、何かとお世話になっているターミナル。
しかし、デフォルトで入っている bash というシェルでは、何かと不便なことが多いものです。
例えば、git のコマンドを補完してくれなかったり、($ git branch
と変換したいのですが、ここで Tab を押しても何も反応しません。。。)
ディレクトリ移動の時に Tab を押しすぎてごちゃごちゃしたり、(3回くらいならまだ良いほうかも)
コマンドを間違えていても気がつかないし、(自分が悪いんだけれども。。。)
地味に困ることが色々とあります。
そして、これらのイライラを解消してくれるのが、fish というシェルなのです。
fish でできること
fish は、Friendly Interactive SHell の略語で、とにかくユーザーフレンドリーに作られたシェルです。
他のシェルとは違って、特にカスタマイズすることなく使用することができます。
fishを使うと、今までの問題がこんな風に解決できます。
Git コマンドの補完
$ git branch
を入力しようとしたら、履歴にそのコマンドがあれば灰色の文字で表示されるし、履歴にない場合でもTabを押せば補完候補からコマンドを選ぶことができます。
それに加えて、$ git branch -
でTabを押すと選択できるオプションも一覧で表示してくれます。これは結構便利です。
他にも様々なコマンドにおけるオプションも表示できるので、いちいち調べる手間を省くことができそうです。
ディレクトリの移動がスムーズに
ディレクトリの移動のときに Tab を押すと、移動できる候補が表示されて、Tab をもう一度押すと候補を選択することができます。
もちろん選択には ←↓↑→ のキーを使うことも可能。
もう Tab の連打でターミナルに文字がごちゃごちゃすることはありません。
コマンドの打ち間違いが視覚的にわかる
bash では実行しなければわからなかったコマンドの打ち間違いも、fish なら事前にわかります。
存在しないコマンドであれば、文字が赤いままなのでミスに気がつきやすいです。
地味に生産性が高まります。
この他にも便利な機能があり、素直におすすめです、fish。
フレームワークとして、oh-my-fish や fisherman などを使うと、より見た目に変化をつけたりできますが、個人的にはシンプルなものが好きなので、fish をダウンロードするだけで良いかなと。
以下に、MacBook における簡単な fish の導入方法を載せておくので参考までに。
fishの導入方法(MacBook)
Homebrewでインストール
まずは、fish をインストールしていきます。
ターミナルから以下のコマンドを実行してください。
$ brew install fish
もしも Homebrew をインストールしていなくてエラーが出た場合は、公式ページを参考にしてインストールしてください。
デフォルトのシェルを fish に設定する
fish がインストールできたら、次にターミナルのデフォルト設定を fish に変更していきます。
ターミナルで以下のコマンドを実行して、シェルファイルに fish の情報を書き込みます。
ちなみに、シェルファイルへの書き込みは管理者権限が必要になります。
// Mac M1 チップの場合は /opt/homebrew/bin/fish
# echo -s /usr/local/bin/fish >> /etc/shells
次に、ターミナルを開いた時のデフォルトのシェルを fish に変更します。
// M1 チップの場合は /opt/homebrew/bin/fish
$ chsh -s /usr/local/bin/fish
これらのコマンドが無事に反映されたら、ターミナルを再起動してください。
上部バーに fish と表示されるようになっているのがわかると思います。
これでデフォルトで fish を使うことができるようになりました。
無事にあなたもfish民です。
おまけ:さらにshellをカスタマイズする
$ fish_config
を実行すると GUI から fish の設定を行うことができるので便利です。
また、fish でエイリアスを設定することで、自分好みのコマンドを設定することもできます。
例えば、ターミナルから SublimeText で任意のディレクトリを開きたい場合、以下のように記載して
# ターミナルからSublimeTextで開く
alias sb='open -a /Applications/Sublime\ Text.app'
ターミナルに設定を読み込ませれば、aliasで設定したコマンドを使えるようになります。
# 設定の読み込み
$ source .config/fish/config.fish
# SublimeTextでディレクトリを開く
$ sb MyProjects/myapp
よく使うコマンドなどは、ショートカットとして登録しておくと便利になるのでおすすめです。
ちなみに、Android Studio で fish を使うためには、Android Studio の設定→Terminal→Shell Path に /usr/local/bin/fish
を指定する必要があります。