iLog

About

fishはじめました

2016.11.13 Linux

はじめに

こんにちは、ishiy(@ishiy1993)です。

これまでzshを使用していましたが、fishに乗り換えてみることにしました。

fishにしてまだ1週間くらいしか経ってませんが、感想、注意点、設定したことを書きます。

fishの感想と乗り換える経緯

ほとんど設定せずに、便利に使える。fishのよさはこの点にあると思います。

僕はこれまでプラグインなどを使用せず最低限の設定でzshを使っていました。 zshをあんまり使いこなせてないけど、設定やプラグインを調べるのも面倒だと感じていました。 fishの存在は少し前から知っていましたが、bashとの互換性がないことに不安を感じて乗り換えをためらっていました。 ですが、fishにしてみてダメそうだったらzshに戻せばいいやと思いきって、fishをはじめてみました。

fishの注意点

bash互換でないことに気を付けましょう。 詳細なbashとの違いはfish tutorialを見てください。 ここでは僕が気になったことだけを紹介します。

$_の挙動が違う

ディレクトリを作成しそこに移動するとき、zshでは

$ mkdir hoge ; cd $_

としていました。しかし、fishでは$_の挙動がzshと違うのでこのようなことはできません。

zsh% mkdir hoge
zsh% echo $_
hoge
fish> mkdir hoge
fish> echo $_
echo

{1..10}が展開されない

zsh% echo {1..10}
1 2 3 4 5 6 7 8 9 10
fish> echo {1..10}
1..10

ただし、fishでもブレース展開は使えます:

fish> echo {a,b}{1,2}
a1 b1 a2 b2

LANG=C dateが使えない

環境変数を一時的に変更してコマンドを実行するとき、zshでは

zsh% LANG=C date
Sun Nov 13 08:56:19 JST 2016

とします。一方、fishでは

fish> env LANG=C date
Sun Nov 13 08:56:19 JST 2016

とする必要があります。

fishをデフォルトシェルにしない

僕はArchlinuxを使用しているので、ArchWikiに従ってfishをデフォルトシェルにしませんでした。

その代わり、urxvtを起動するときにurxvt -e /usr/bin/fishとすることでfishを使用しています。

設定したこと

ほとんど設定せずに便利に使えるのがfishのよさだと書きましたが、僕がどんな設定をしたかを書いておきます。

これくらいです。

僕のプロンプト設定は

という感じです。Gitが使用されているディレクトリではブランチを表示するようにしています。gitプロンプトの設定はここで解説されています。

まとめ

fishの感想、注意点、設定を紹介しました。

シェル芸などで不便を感じたらzshに戻るかもしれませんが、しばらくfishを使っていこうと思います。

参考ページ:

間違いなどありましたら、@ishiy1993に連絡していただけると助かります。

ではでは。