LoginSignup
20
9

More than 5 years have passed since last update.

いまさらfishを触ってみた

Posted at

SENSY株式会社のnamcoです。
業務ではiOS APPの開発をしています。

Adventカレンダーということで、前から少し気になっていたfishを触ってみました。

全訳!fishシェル普及計画

fishはフル装備のコマンドラインシェル(bashやzsh同様)で、賢くユーザフレンドリーです。
fishは シンタックスハイライト 、 オートサジェスチョン 、知識ゼロ・設定ゼロでそのまま動作する TAB補完 をサポートしています。
もし、コマンドラインをもっと生産的に、便利に、楽しい(難解な文法や設定オプションを学ぶことなく)環境にしたいならば、fishはあなたの求めていたシェルかもしれません!

今まではzshを使っていました。zshの頑張って肥やしていく感じが好き(こういうとすごく肥やしてる感があるが、全然肥えていない)だったのですが、これを機会に、どちらを使っていくのがいいのか考えていければと思います。

今回の内容としては、下記のような流れで書ければと思います。
1. fishの構築。
2. zshでの設定項目を再現。

fishの構築

fishのインストール

$ brew install fish
$ fish -v
fish, version 2.7.0

shellをfishに変更

$ chsh -s /usr/local/bin/fish    

下記のようなログが出た方は、/etc/shellsに /usr/local/bin/fishも追加すると良い。

chsh: /usr/local/bin/fish: non-standard shell

あとはターミナルを再起動する。

下記を実行することで、ブラウザでのconfig確認ができる。

$ fish_config

スクリーンショット 2017-12-10 14.39.59.png

プラグインマネージャを入れる。

$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher

zshでの設定項目を再現。

なお、前述のように以下のような項目は、デフォルトで設定されているので、割愛。
とりあえずタブ押せばいろいろ出ます。
- シンタックスハイライト
- オートサジェスチョン
- TAB補完

プロンプトにgit情報を表示

これは、$fish_configで確認できるブラウザから変更できました。 

スクリーンショット 2017-12-10 14.53.45.png

historyのincrement search

追記します
https://github.com/fish-shell/fish-shell/issues/602

alias

下記のようにすればaliasを設定できます。

$ alias branch_old='git branch --sort=authordate'

なお、alias は function のラッパーでしかないので、
他のfishセッションで永続化できません。
永続化させたいなら、funcsaveする必要があります。

$ funcsave branch_old

またzshでは使えるグローバルエイリアスを使う方法は、見つけられませんでした。
下記のように自作で作られている方がいらっしゃったので、参考にさせていただきました。
zshからfishに乗り換えてみた

まとめ

まだ本当にさわりの部分だけなので、今後ドキュメントなどを読み進めて、理解を深めていきたいと思います。

下記参考にさせていただきました。ありがとうございます。

以上です。

20
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
9