Featured image of post 「fish shell」の導入方法と使い方まとめ【zshから乗り換え】

「fish shell」の導入方法と使い方まとめ【zshから乗り換え】

ユーザーフレンドリーな新しめのシェル「fish shell」をMacに導入する方法と使い方まとめ。Homebrewでのインストール、起動シェルへの設定、レイアウトなどの各種設定、プラグイン管理のfisherとpecoプラグインの導入まで♪

1933文字

fish shellを使ってみよう

シェルには様々なな種類が存在しています。

shbashzshcshなどなど。。。

それぞれメリットデメリットが存在しますが、今回はその中でも割と新しめでおすすめのシェル、「fish」を紹介致します。

fish shell

What’s?

fishとは、Friendly interactive shellの略称です。

Finally, a command line shell for the 90s fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family.fish shell

ユーザーフレンドリーな使いやすさ、対話ベースの操作などなど他のシェルの良いところは吸収し、使いにくいところは改善しています。

今回はmacへの導入方法と、簡単な初期設定をご紹介致します

手順

fishのインストール

まずはfish shellをHomebrewでインストールしましょう。

brew install fish
==> Installing fish
==> Downloading https://github.com/fish-shell/fish-shell/releases/download/3.0.2/fish-3.0.2.tar.gz
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/4279682/90c0cc00-3490-11e9-8ea9-29db33a32b24?X-Amz-Algorithm=AWS4-HMAC-
######################################################################## 100.0%
==> cmake . -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/fish/3.0.2 -DCMAKE_BUILD_TYPE=Relea
==> make install
==> Caveats
You will need to add:
 /usr/local/bin/fish
to /etc/shells.

Then run:
 chsh -s /usr/local/bin/fish
to make fish your default shell.
==> Summary
:beer:  /usr/local/Cellar/fish/3.0.2: 953 files, 8.2MB, built in 1 minute 15 seconds

確認

以下のコマンドで確認しましょう。

fish -v
fish, version 3.0.2

fish shellを起動シェルに設定

次に、chsh -s /usr/local/bin/fishデフォルトのシェルとしてfishを設定します。

[adsense-responsive]

エラーが出た場合

もし、ここでエラーが出た場合は、sudo vi /etc/shellsコマンドで、末尾に/usr/local/bin/fishを追加しましょう。

確認

これで一旦ターミナルアプリを再起動すると、fish shellに切り替わっていると思います。

再起動後
Last login: Wed Jun 19 11:32:07 on ttys000
Welcome to fish, the friendly interactive shell
[11:40:58] blogenist@120 /Users/blogenist (0)
>

各種設定

レイアウト

fish shellはGUIベースで見た目をカスタマイズすることが出来ます。

fish_configと打ってみてください。
すると、ブラウザが立ち上がると思います。

テンプレートが複数あるので、Set Themeボタンを押すだけで反映されてしまいます!
簡単過ぎて恐ろしいですね・・・!

もちろん各テーマもさらにカスタマイズ出来ます!

他にもエイリアスや関数などをGUIで管理出来るのでとても使いやすいです!

bashやzshの場合は自分で設定ファイルを記述したり、切り替えをしないといけなかったので確認がめんどくさかったですよね。orz

fisher(fisherman)のインストール

次に、fish shellのためのプラグインマネージャーであるfisher(fisherman)をインストールしましょう。

こちらを使うことで、fish shellをカスタマイズする際に自分で記述する必要が無くなります

fisherはHomebrewでは落とせないのでcurl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fishで直接インストールしましょう。

確認

以下のコマンドでインストールを確認しましょう。

fisher -v
fisher version 3.2.9 ~/.config/fish/functions/fisher.fish

pecoプラグインの導入

fishはpecoのプラグインも用意されているので簡単に導入出来ます。

あらかじめpecoはインストールしておきましょう。

関連記事 【ターミナルの使いやすさ抜群に】標準出力に対する最強の検索ツール「Peco」をインストールしたら幸せになった【バイバイgrep/find】 2018/10/16 1245文字 約3分で読めます IT Go Homebrew Mac アプリケーション

fisher add oh-my-fish/plugin-pecoでプラグインをインストールします。

インストールしたら設定ファイルに以下を記述します。

~/.config/fish/config.fish
#peco
function fish_user_key_bindings
    bind \cr peco_select_history
end

これでCtrl + Rでfish上でpecoを使った履歴検索が動くようになります。

theme-bobthefishプラグインの導入

次はtheme-bobthefishをインストールしましょう。

こちらはターミナル上にGitの現在のブランチ差分状況をわかりやすく表示してくれるプラグインなので、gitを使っている方ならマストです!

fisher add oh-my-fish/theme-bobthefish
created new fishfile in ~/.config/fish/fishfile
fetching https://codeload.github.com/oh-my-fish/theme-bobthefish/tar.gz/master
linking ~/.config/fish/functions/__bobthefish_colors.fish
linking ~/.config/fish/functions/__bobthefish_display_colors.fish
linking ~/.config/fish/functions/__bobthefish_glyphs.fish
linking ~/.config/fish/functions/bobthefish_display_colors.fish
linking ~/.config/fish/functions/fish_greeting.fish
linking ~/.config/fish/functions/fish_mode_prompt.fish
linking ~/.config/fish/functions/fish_prompt.fish
linking ~/.config/fish/functions/fish_right_prompt.fish
linking ~/.config/fish/functions/fish_title.fish
added 1 package in 1.43s

文字化けする場合

インストール完了するとすぐに反映されますが、文字化けする場合があります。

[adsense-responsive]

その場合はPowerline-fontsをインストールする必要がありますので、以下の手順を行ってフォントをインストールしてください。/p>

powerline-fontsのインストール手順
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
cd ../
rm -rf ./fonts

次に、iTeam2にて、インストールしたpowerline-fontsを使うように設定しましょう。

iTerm2 > Preferences > Profiles > Text > Change Fontから、Literation Mono Powerlineを選択しましょう。
これで文字化けが消えてアイコンが表示されるようになります。

ブランチ名が表示されていない場合

文字化けが解消されたが、現在のブランチ名が出てない場合があります。

その場合は、config.fishset -g theme_display_git_master_branch yesを追記して再読み込みすることで表示されるようになります。

綺麗に表示されていますね♪

ディレクトリを省略したくない場合

デフォルトでは、以下のようにカレントディレクトリ以外は省略されています。

[adsense-responsive]

デフォルト
# ~/Develop/git/github/powerline/fonts
~/D/g/g/p/fonts

省略させたくない場合は、config.fishset -g fish_prompt_pwd_dir_length 0を追記しましょう。

これで省略されなくなりました♪

終わりに

以上のように、bashやzshに比べてカスタマイズがとてもしやすく、使いやすいシェルです。

割と最新のシェルでまだまだ開発が活発なようなので、気になる方は是非導入してみてください。