背景
年明けから会社でWSL2(Ubuntu) 環境で開発を行うことになり、shellを使う機会が多くなりました。
モブプロをやっている時に、先輩の画面を見て変わったプロンプトだなと思って聞いてみたら、
fish shell なるものだと教えてもらったので、試しに入れてみました。
自分用メモを兼ねてまとめてみます。
使用感
まだ使い始めてから3日くらいしか経っていませんが、今までデフォのbashしか使っていなかったのでとっても便利!と感じました。
具体的には以下の点が良かったです。
- デフォルトで強力な補完が使える
- プラグインの追加が楽(これは最近の他のshellではそうかもですが)
- インストールからいい感じの見た目になるまでの手順が楽
ちょっとした手順で画像のような見やすいターミナルになりました!
ただ、若干文法が異なるようなので、そこだけは要注意です。
前提
以下の環境でセットアップしました。
- Windows WSL2(Ubuntu)
- Homebrewはインストール済み
Windows10 でも Windows11 でもどちらでも今回紹介する手順でセットアップできます。(若干画面操作の経路は異なります)
セットアップ
検索すると結構Mac向けの記事が多いのですが、wslの記事だとだとフォント周りがやや面倒くさいです。
先ほど紹介した見た目にすることをゴールに進めていきます。
fish のインストール
任意のフォルダで以下コマンドでインストール。
brew install fish
fish のバージョンの確認。
fish
と入力してバージョンが表示されればOKです!
fish -v
fish, version 3.3.1
早速 fish
と入力して fish shell に入りましょう。
fish
この時点で補完が効くようになっているので十分便利です。
プロンプトの見た目をいい感じにする
デフォルトだとカレントディレクトリがわかりづらかったり、Git のブランチが表示されないので、
ここからはいい感じの見た目にしていきます。
fish を起動した状態で fish_config
を実行するとブラウザが起動し、ブラウザ上で配色テーマをはじめとする様々な設定が行えます。
それでも十分にいい感じのみためになりますが、今回はプラグインを入れて見た目を変えていきましょう。
(ちなみに、設定ファイルをいじくり回せば、もっと自分好みの細かいカスタマイズができるようです。)
fisher(プラグインマネージャー)のインストール
まずはプラグインを管理するツールを入れます。
いろいろあるようですが、 fisher(フィッシャー) が良さそうだったので今回はこれを使います。
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
テーマを設定
fisher install oh-my-fish/theme-bobthefish
試しに、Git で管理しているプロジェクトに移動してみましょう!
Git のブランチがいい感じに表示されていると思います。
文字化けを解消
以下のそれぞれで開く際の文字化けを解消します。
- WSLのUbuntuのターミナル
- Windows Terminal
- VSCodeのターミナル
事前準備
Windows上にフォントをインストールします
- Cicaのプロジェクトから最新のものをダウンロードして任意のフォルダに解凍
- Windowsのスタートの検索ボックスで「フォント」を検索 > 「フォント設定」を開く > 解凍したファイルの
.ttf
拡張子のもの(複数あります)をドラッグアンドドロップ
WSLのUbuntuのターミナルの設定変更
Windowsの検索ボックスからUbuntuのターミナルを起動します。
タイトルバーを右クリック > プロパティを開く > フォント からCicaを選択して「OK」
fish を開くと文字化けが直っています。
すでに fish をひらいている場合は一度 exit
で fish から出て、入り直してください。
Windows Terminal
1. Windows Terminal を起動します。
2. タブの末尾のVのようなマークをクリックして「設定」を開きます
3. 画面左したの歯車アイコンをクリックします(初回はどのプログラムでファイルを開くか聞かれます。)
4. 設定ファイルを編集します。
指定したエディタで json ファイルが開きます。
profiles > list に色々なターミナルの設定があるので、その中の Ubuntu の設定の末尾に ,
を追加して、その一行下に "fontFace": "Cica"
を追加して保存してください。
※2022年11月6日追記
追記時点では fontFace
属性は非推奨となっているようです。
元々 "fontFace": "Cica"
で設定していたものを、以下のように設定した方がよさそうです。
参考 : Windows ターミナルでの外観プロファイル設定
"font": {
"face": "Cica"
}
5. Windows Terminal を再起動してください
以上でWindows Terminal 上での文字化けが直ります。
VSCodeのターミナル
※前置き: VSCode から WSL にアクセスする際には、Remote Development プラグインが必要です。
VSCodeを開き、「Ctrl+Shift+p > ターミナル: ターミナル設定の構成」から、Terminal › Integrated: Font Family
の項目 を Cica にします。
VSCode から WSL のプロジェクトを開き、ターミナル上で fish を起動してください。
これで VSCode 上でも文字化けせずにいい感じで fish が使えます!
仕上げ:プロンプトの表示内容を設定
文字化けも解消されて、大分いい感じになりました。
しかし、まだ日付フォーマットがおかしかったり、ディレクトリ名が省略されています。
次はこれを調整します。
fishは ~/.config/fish
ディレクトリ以下に様々な設定を持っています。
今回は、~/.config/fish/config.fish
の設定を変更します。
こんな感じで以下の set
から始まる2行を追加します。
if status is-interactive
set -g theme_date_format "+%Y-%m-%d %H:%M:%S" # 日付のフォーマットを変更(例: 2022-03-01 23:22:22)
set -g fish_prompt_pwd_dir_length 0 # フォルダ名が省略されていたものを省略しなくする
# Commands to run in interactive sessions can go here
end
設定が完了したら、 fish を再起動してください。
おめでとうございます!
こんな感じの見た目になったと思います。
おまけ: fish 起動時にかわいいお魚を表示
ここまで読んでくださってありがとうございます。
最後に、fish_logo というかわいいお魚を表示するプラグインがあるので紹介します。
個人的にかなり惹かれたので、起動時に表示してみましょう。
fish を起動して以下を実行します。
fisher install laughedelic/fish_logo
~/.config/fish/functions/fish_greeting.fish
に fish_logo
を追記します。
function fish_greeting -d "What's up, fish?"
set_color $fish_color_autosuggestion
uname -nmsr
# TODO: `command -q -s` only works on fish 2.5+, so hold off on that for now
command -s uptime >/dev/null
and command uptime
set_color normal
echo "Hello FISH!!!" # せっかくなのでごあいさつ
fish_logo # お魚を呼び出す
end
最後に
ここでは、 fish をログインシェルにしたりいろいろなプラグインの紹介は書いていませんが、
いろいろ試して書き足していこうと思っています。
ここまで読んでくださった方、ありがとうございました。