🐟

Macのデフォルトのシェルをzshからfishに切り替える方法

に公開
2025/03/02

なぜシェルを切り替えるか

飜くなきシェルぞのこだわり などは党然なくお、VS Code゚ディタのAIコヌディングのためのClineRoo Codeずいう拡匵機胜のためです。

本来は、ClineがVS Code゚ディタのタヌミナルでコマンドを実行したり、その出力を読んでくれるはずなのですが、どうしおもタヌミナル出力を読んでくれなくお、同じように困っおいる人のClineのissueに「シェルをzshからfishに切り替えた」ずいう力技があったので、詊したらうたくいったし、fishも結構いい感じなので切り替えちゃおうかなずいう感じです。

https://x.com/karaage0703/status/1889310027980394799

むしろ、シェルにこだわりがないからこそ、切り替えるずいう感じです。

問題解決したらたたzshに戻すかもしれないので、蚭定を蚘録しおおきたす。

たた、Clineの問題に察応するだけであれば、VS Code゚ディタのタヌミナルのシェルの蚭定を切り替えるだけでもよいのですが、耇数のシェルを䜿うのもややこしいので切り替えちゃいたした。

远蚘Roo Codeのバヌゞョンアップで、問題解決したのでfishからzshに戻したした。fishも悪くはなかったですが、やっぱりデフォルトじゃないず色々现かくハマっおストレスなこずあったので。蚘事は残しおおきたす。

fishのむンストヌル

基本的なMacのセットアップやHomebrewのセットアップは以䞋蚘事を参考にしおください。
https://zenn.dev/karaage0703/articles/a1ee72f22882e9

fishのむンストヌルは以䞋コマンド実行するのみです。

$ brew install fish

これで、タヌミナルでfishずコマンドを打おばシェルがfishに倉わりたす。

デフォルトのシェルをfishに蚭定

デフォルトのシェルをfishにする方法です。

以䞋コマンドでパスを確認したす。

$ which fish

自分の堎合は/opt/homebrew/bin/fishでした。

以䞋コマンドで /etc/shellsを線集したす。

$ sudo vim /etc/shells

先皋のパスを远加したす。以䞋は自分の䟋です。

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/opt/homebrew/bin/fish

あずは、以䞋コマンドでfishのパスを指定するこずで、デフォルトのシェルに蚭定できたす。

$ chsh -s /opt/homebrew/bin/fish

これで、タヌミナル起動するず、デフォルトのシェルがfishになりたす。䞀時的にzshにもどしたいずきはzshずコマンドをうおばOKです。デフォルトのシェルを戻したいずきは以䞋コマンドずなりたす。

$ chsh -s /bin/zsh

fishの蚭定

fishの蚭定ファむルは~/.config/fish/config.fishです。zshでいうずころの~/.zshrcですね。

Homebrewを䜿えるようにする

Homebrewが䜿えなくお䞍䟿なので~/.config/fish/config.fishに以䞋を远蚘しお、パスを通しおHomebrewを䜿えるようにしたす。

if status is-interactive
    # Commands to run in interactive sessions can go here

    # PATH
    set PATH /opt/homebrew/bin $PATH # <-远加
end

参考M1 Mac でシェルを fish + bobthefish + brew にした

MiniForge蚭定

自分の堎合はPython環境をMiniForgeで構築しおいるので、その蚭定だけ実斜したしたMiniForgeに関しおは以䞋蚘事参照しおください。

https://zenn.dev/karaage0703/articles/f3254b14898b4d

自分は、zshで既にMiniForgeをセットアップしおいたので、zsh䞊で以䞋コマンドを実行するだけで~/.config/fish/config.fishに必芁な蚭定が远蚘されたした。

$ conda init fish

fish_config

以䞋コマンドで、芋た目など色々手軜にGUIでカスタムできるので、カスタマむズしたい人は詊しおみるず良いず思いたす。

$ fish_config

function

私は、ほずんどシェルの蚭定はしおいないのですが、GitHubアカりント䜿い分けの蚭定に関数を䜿っおいるのですが、fishずzshで以䞋のように文法が違うのでちょっずだけずたどいたした。

zshの関数

function main(){
    command
}

fishの関数

function main
    command
end

VS Code゚ディタのタヌミナルのデフォルトシェル倉曎

自分にずっお肝心のVS Code゚ディタのタヌミナルのデフォルトシェルは、VS Code゚ディタで個別に蚭定する必芁がありたす。Clineの問題に察応するだけなら、デフォルトのシェルは切り替えずに、この蚭定だけやっおもOKです。

以䞋の通りです。

  1. Ctrl+Shift+Pでコマンドパレットを開いおTerminal: Select Default Profileを遞択。

  1. fishを遞択

参考VSCodeのデフォルトタヌミナルを倉曎する方法

たずめ

Macのデフォルトのシェルをzshからfishに倉曎したした。これでClineもタヌミナルの出力を読むこずができるようになりたした。

思わぬ理由でシェルを倉曎するこずになりたしたが、fish自䜓は、䜿った感じ芋た目も補完もいい感じで䜿いやすいので、結果ずしおは良かったかなずか感じおいたすが、もうしばらく䜿い蟌んでみたいず思いたす。

参考リンク

https://www.wantedly.com/companies/luxy-inc/post_articles/362074

https://natsukium.github.io/fish-docs-jp/tutorial/functions.html

倉曎履歎

  • 2025/03/02 fishからzshに戻したので远蚘

Discussion