fish shellがいい感じらしいのですが、調べてみると
- 補完が優秀
- シンタックスハイライト
- ブラウザで設定を変更できる
- 軽い
- エラーメッセージが具体的
といういいところがあるそうです。
具体的にどんな感じのシェルなのかというと、次のgifをご覧ください。
たしかに、いい感じ。
そして、かっこいい!
ってことでfish shell使います。
fish shellをインストール
まずはfish shellをインストールします。
fish shellはbrewでインストールできます。
$ brew install fish
==> Downloading https://ghcr.io/v2/homebrew/core/ncurses/manifests/6.3
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/ncurses/blobs/sha256:a1aabfa5d0
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
...
==> Pouring ncurses--6.3.arm64_monterey.bottle.tar.gz
🍺 /opt/homebrew/Cellar/ncurses/6.3: 3,968 files, 9.6MB
==> Installing fish dependency: pcre2
==> Pouring pcre2--10.40.arm64_monterey.bottle.tar.gz
🍺 /opt/homebrew/Cellar/pcre2/10.40: 230 files, 6.1MB
==> Installing fish
==> Pouring fish--3.4.1.arm64_monterey.bottle.tar.gz
🍺 /opt/homebrew/Cellar/fish/3.4.1: 1,405 files, 14.8MB
==> Running `brew cleanup fish`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
シェルの一覧を修正します。
$ sudo vim /etc/shells
fish shellのパスを追加。
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
# fish shellを追加
/usr/local/bin/fish
fish shellを次のコマンドでデフォルトのshellにします。
$ chsh -s /usr/local/bin/fish
Changing shell for ri-ho-.
Password for ri-ho-:
chsh: /usr/local/bin/fish: non-standard shell
または次のコマンドでfish shellのパスの追加とデフォルトのshellにすることができます。
$ echo $(which fish) | sudo tee -a /etc/shells
$ chsh -s $(which fish)
ターミナルを終了してから開くと次の画像の様にターミナルで「fish」が確認できます。
コマンドでデフォルトのシェルが変更できなかった場合はシステム環境設定から手動でデフォルトのシェルを変更します。
次の画像のようにシステム環境設定の「ユーザーとグループ」を開いてください。
「ユーザーとグループ」の画面の左下の鍵をクリックしてパスワードを入れ、編集できる状態にします。
その後、現在のユーザーを右クリックして「詳細オプション」を開きます。
「詳細オプション」のログインシェルでfishを選択します。
設定
fish shellの設定はブラウザでできます。
まず、次の様にターミナルでfish_config
を実行します。
$ fish_config
ブラウザでfish shellの設定画面が開きます。
この画面上で各種設定を行っていきます。
パッケージマネージャーをインストール
fish shellのプラグインを管理するパッケージマネージャーはfisherを使います。
以下のコマンドでfisherをインストールします。
$ curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
fisherの使い方を簡単に説明します。
インストールとアンインストール
パッケージをインストールするにはinstall
を使います。
$ fisher install jethrokuan/z
アンインストールするにはremove
を使います。
$ fisher remove jethrokuan/z
インストール済みパッケージ一覧
list
でインストール済みのパッケージを一覧表示させることができます。
$ fisher list
jethrokuan/z
oh-my-fish/plugin-peco
yoshiori/fish-peco_select_ghq_repository
sentriz/fish-pipenv
キーワードや正規表現で出力をフィルタリングするとこもできます。
$ fisher list peco
oh-my-fish/plugin-peco
yoshiori/fish-peco_select_ghq_repository
パッケージのアップデート
パッケージをアップデートするにはupdate
を使います。
$ fisher update jethrokuan/z
テーマを変更する
見た目を変えるためにfish shellのテーマを変更します。
fish shellのテーマを変えるためにoh-my-fishを次のコマンドでインストールします。
$ curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish
テーマを変更する
oh-my-fishを使ってテーマを変更します。
テーマは次のように複数あります。
今回は人気のbobthefishというテーマにします。
次のコマンドを実行してbobthefishをインストールします。
$ omf install bobthefish
bobthefishはアイコンフォントが使用されているので、一部が文字化けしてしまいますのでフォントを変更する必要があります。
フォントを変更する
bobthefishはアイコンフォントが使用されているので、ターミナルのフォントを変更します。
今回はpowerline fontsを使うので、以下のようにコマンドを実行してフォントをインストールします。
$ git clone https://github.com/powerline/fonts.git
$ cd fonts
$ ./install.sh
$ cd ..
$ rm -rf fonts
フォントをインストールしても文字化けが解消されない場合は手動でターミナルのフォントを変更します。
ます、次の画像のようにターミナルの環境設定を開きます。
次に、プロファイルのフォントで「powerline」の文字が入ったフォントを選びます。
以上でターミナルのフォントが変更でき、テーマの文字化けが解消されます。
ディレクトリ管理ツールをインストール
fish shellのディレクトリ管理ツールはzを使うので、次のコマンドでzをインストールします。
$ fisher install jethrokuan/z
zを使うとディレクトリ間の移動がすばやくできるようになります。
次のようにディレクトリに移動後にzにそのディレクトリに移動すると
# project_aに移動
$ cd xxx/yyy/project_a
# project_aディレクトリでzに登録
$ z project_a
次回からはzに登録したproject_aでproject_aディレクトリに移動することができます。
# ホームディレクトリ
$ cd ~/
# project_aディレクトリに移動
$ z project_a
zに登録したディレクトリ一覧を見たい場合は-l
を使って見ることができます。
$ z -l
1 xxx/yyy/project_a
zに登録したディレクトリを削除した場合は、-c
を使って存在しなくなったディレクトリを削除することができます。
$ rm -rf xxx/yyy/project_a
$ z -c
/Users/aaa/.local/share/z/data cleaned!
pipenvを使えるようにする
fish shellでpipenvを使えるようにするためにfish-pipenvをインストールします。
-> fisher install sentriz/fish-pipenv
set -U fish_user_paths ~/.pyenv/shims $fish_user_paths
まとめ
fish shellのプラグイン以外にもghqとpecoを併用するとgitプロジェクトを楽に管理できます。
$ brew install ghq peco
$ fisher install oh-my-fish/plugin-peco yoshiori/fish-peco_select_ghq_repository
参考
https://zenn.dev/stag_buster/articles/14fe49409c8f7d
https://blog.ojisan.io/to-fish/
https://qiita.com/YuukiMiyoshi/items/4a52516744530cd60e47
https://qiita.com/hiroki924/items/5d88874264eee5704198
https://zenn.dev/obregonia1/articles/e82868e8f66793
コメント