ramenjunitiメモ

自分なりに調べたものをまとめたり、文章を書く練習したり

シェルをfishにしたらイイ感じだった

この記事は Sunrise Advent Calendar 2019 の8日目の記事です。 adventar.org

シェルをfishに変更したらイイ感じだったので、それについて書いていきます。(Sunriseとは全く関係ないですが...笑)

fishとは

github.com

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. デフォルトですでにイイ感じ!

  • サジェストしてくれる

f:id:ramenjuniti:20191203210918g:plain

  • 色でそのコマンドがあるかどうか教えてくれる

f:id:ramenjuniti:20191203210829g:plain

  • タブで候補を表示

f:id:ramenjuniti:20191203210846g:plain

👇このコマンドで各アプリケーションのmanからサブコマンドやオプションの補完も生成してくれます。これを実行しとくとほとんどのアプリケーションで補完機能を発揮してくれます。

fish_update_completions

2. 設定が楽!

  • fish_configを実行するとブラウザでfishの設定を行うことできます。ポチポチでカスタマイズできる!

f:id:ramenjuniti:20191203203708p:plain

3. pluginの導入が楽!

fisher というfishのプラグインの管理ツールを用いて、プラグインを簡単にインストールすることができます。

github.com

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

こんな感じ https://i.gyazo.com/dac498a2d47aca376b9c89edf2c508db.gif

z {ディレクトリ名}で直接そのディレクトリに移動できるプラグインです。zは訪れたディレクトリを追跡して頻度と最新性から飛ぶディレクトリを決めてるみたいです。

インストールは以下の通り

fisher add jethrokuan/z

こんな感じ https://i.gyazo.com/95879aece5b4dd4e9955727855cb3f5e.gif

他にも良さそうなプラグインたくさんありそう...

4. テーマが豊富!

ここにいっぱいテーマが載ってます。

github.com

Fisherで簡単にインストールできます。

fisher add {テーマ}

私はclearanceっていうテーマを使っていて、以下のようにインストールしました。

fisher add oh-my-fish/theme-clearance

終わりに

前まではzsh使ってて、イイ感じするために色々設定が大変(時間を溶かしてた)だったんですが、fishはそこらへんが楽でサイコーですね(イイ感じにするのすぐできた)

まだ使って間もなく無知な部分もあるので、他に良いプラグインなどを知っている方、是非教えて欲しいです!