かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

zsh から fish に乗り換えるまで

環境

  • fish 2.7.1

zsh の設定がわけわからなくなってきた

乗り換えようと思った理由はこれにつきます。色々な設定を継ぎ足し継ぎ足ししてきたので結構カオスな感じになっていたし、時々原因が特定できない shell がやたらと重いという現象にも悩まされていました。

zsh の設定をまっさらにしても良かったのですが、せっかくだから違うのを使ってみようと思い、見つけたのが fish でした。プラグイン管理ツールもあり、今のところいい感じです。

zsh から fish に乗り換えるまで

インストールは HomeBrew でコマンド一発で完了します。

brew install fish

デフォルトのshellを変更する

fish を HomeBrew で入れただけでは iTerm2 や Terminal を起動したときのshellは変わりません。

$ sudo vim /etc/shells
最終行に /usr/local/bin/fish を追記する
$ chsh -s /usr/local/bin/fish

プラグイン管理ツールを入れる

fish にはプラグイン管理ツール fisherman というものがあります。こいつのお陰で設定ファイルに色々ゴリゴリ書かなくてもいい感じに使えるようになります。

サクッと以下のコマンドでインストールしちゃいましょう。

curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman

zshや vim でいろいろな設定やプラグインを入れまくって重くなったり管理がめんどくさくなったりしたので今回は必要最低限しか入れないようにしようと心に誓いました。今のところ必須なのは以下の2つでした。

$ fisher omf/plugin-peco
$ fisher pyenv

peco のプラグインは入れただけでは特にキーバインド等は設定してくれないので、 ~/.config/fish/config.fish に以下を記述してショートカットで呼び出せるようにします。

function fish_user_key_bindings
  bind \cr 'peco_select_history (commandline -b)'
end

プロンプト右側にgit のステータスを表示できるようにする

毎回 git branch して今どこのbranchにいるかや、 git stats してファイルの変更があるかなどを見るのはめんどくさすぎますよね。zsh でも git リポジトリに居るときだけ、branchやステータスを表示するようにしていたので、それと同じ事を実現します。

以下2つの設定ファイルに記述します。

config.fish

# fish git prompt
set __fish_git_prompt_showdirtystate 'yes'
set __fish_git_prompt_showstashstate 'yes'
set __fish_git_prompt_showuntrackedfiles 'yes'
set __fish_git_prompt_showupstream 'yes'
set __fish_git_prompt_color_branch yellow
set __fish_git_prompt_color_upstream_ahead green
set __fish_git_prompt_color_upstream_behind red

~/.config/fish/functions/fish_right_prompt.fish

function fish_right_prompt
  printf '%s' (__fish_git_prompt)
end

とりあえずこれで自分は生活できる用になりました。コマンドを打ち出したときにうっすら表示されるよく使うコマンドと引数の候補はとても便利ですね。 もうちょっと早く乗り換えればよかったなー。

参考文献

http://patorash.hatenablog.com/entry/2017/09/21/022657

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

  • 作者: ブルース・ブリン,Bruce Blinn,山下哲典
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2003/02
  • メディア: 単行本
  • 購入: 18人 クリック: 331回
  • この商品を含むブログ (64件) を見る