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