シェルをfishにしたらイイ感じだった
この記事は Sunrise Advent Calendar 2019 の8日目の記事です。 adventar.org
シェルをfishに変更したらイイ感じだったので、それについて書いていきます。(Sunriseとは全く関係ないですが...笑)
fishとは
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish includes features like syntax highlighting, autosuggest-as-you-type, and fancy tab completions that just work, with no configuration required.
fish はスマートでユーザーフレンドリーなシェルで、シンタックスハイライト、サジェスト、補完などの機能をデフォルトで持っています。
また、fish は the friendly interactive shell という意味らしく、名前から人類に優しそうな雰囲気を感じます。
👇ここでfishを体験することができます rootnroll.com
なぜfish
- 夏のインターンで会った人が何人か使っていて興味があった
- ちょうどPCを買い換えて導入する良いタイミングだった
って感じで、どんなもんなんやろなーってインストールしました
fishを入れてみる
brewでインストール
brew install fish
/etc/shells
に/usr/local/bin/fish
を追記
echo /usr/local/bin/fish | sudo tee -a /etc/shells
シェルをfishに切り替え
chsh -s /usr/local/bin/fish
これでオーケー。インストール方法はzshとだいたい一緒な気がする
fishを使ってみた感想
ん、なんか既にええ感じやん!
色で教えてくれてわかりやすい!
設定も楽やん!
テーマいっぱい!
プラグインいっぱい!
最高!
ってことで、下でよかったところを書いてきます
fishの良いと思ったところ
1. デフォルトですでにイイ感じ!
- サジェストしてくれる
- 色でそのコマンドがあるかどうか教えてくれる
- タブで候補を表示
👇このコマンドで各アプリケーションのman
からサブコマンドやオプションの補完も生成してくれます。これを実行しとくとほとんどのアプリケーションで補完機能を発揮してくれます。
fish_update_completions
2. 設定が楽!
fish_config
を実行するとブラウザでfishの設定を行うことできます。ポチポチでカスタマイズできる!
3. pluginの導入が楽!
fisher というfishのプラグインの管理ツールを用いて、プラグインを簡単にインストールすることができます。
fisher をインストール
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
fisherを用いたプラグインのインストールは以下のように行うことができます。
fisher add {プラグイン}
私は今のところ以下のプラグインを入れています。
pecoは標準入力されたものを検索して出力するコマンドで、このプラグインでは履歴の検索とプロセスキルを提供してくれています。
インストールは以下の通り
brew install peco fisher add oh-my-fish/plugin-peco
私は.config/fish/config.fish
に以下のコードを追加してCtrl + r
で履歴の検索ができるようにしています。
function fish_user_key_bindings bind \cr 'peco_select_history (commandline -b)' end
z {ディレクトリ名}
で直接そのディレクトリに移動できるプラグインです。zは訪れたディレクトリを追跡して頻度と最新性から飛ぶディレクトリを決めてるみたいです。
インストールは以下の通り
fisher add jethrokuan/z
他にも良さそうなプラグインたくさんありそう...
4. テーマが豊富!
ここにいっぱいテーマが載ってます。
Fisherで簡単にインストールできます。
fisher add {テーマ}
私はclearanceっていうテーマを使っていて、以下のようにインストールしました。
fisher add oh-my-fish/theme-clearance
終わりに
前まではzsh使ってて、イイ感じするために色々設定が大変(時間を溶かしてた)だったんですが、fishはそこらへんが楽でサイコーですね(イイ感じにするのすぐできた)
まだ使って間もなく無知な部分もあるので、他に良いプラグインなどを知っている方、是非教えて欲しいです!