🦑 まえがき

社内で、シェルは何を使っているのか、 framework 的なものはどういったものを使っているのかとか話して「 fish いいよ〜」という話になったので、使い始めてみました。

ぼくは、 zsh をずっと使っていて、

ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with nearly 1,500 contributors) framework for managing your zsh configuration. Includes 200+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, php, python, etc), over 140 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.

sorin-ionescu/prezto: The configuration framework for Zsh

を導入していました。

なので、 zsh -> fish という感じです。

🐶 fishをインストールする

$ brew install fish
$ fish -v

🍔 シェルを変更する

最後の行に追加します。

$ sudo vi /etc/shells
$ /usr/local/bin/fish

ログインシェルを fish に変更します。

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

🔫 fisherをインストールする

パッケージマネージャーをインストールします。

jorgebucaran/fisher: A package manager for the fish shell.

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

🪓 テーマを変更する

$ fisher add oh-my-fish/theme-bobthefish

🏋🏻‍♂️ Powerlineフォントをインストールする

$ git clone https://github.com/powerline/fonts.git
$ cd fonts
$ ./install.sh
$ cd ../
$ rm -rf fonts

iTerm2 の Profiles -> Text で

Source Code Pro for Powerline を選び、 Bold にしました。

ぼくの環境では、 Bold をつけないと、 Powerline の矢印がズレてしまったので、これで対応しています。

🧛‍♂️ Draculaのテーマをインストールする

$ git clone https://github.com/dracula/iterm.git
$ cd iterm
$ open ./Dracula.itermcolors

🤼‍♀️ jethrokuan/zをインストールする

jethrokuan/z: Pure-fish z directory jumping

z は過去に訪れたディレクトリの履歴検索ツールです。

$ fisher add jethrokuan/z

使い方は、

“z” + スペースを押して、行きたいディレクトリ名を入力し、タブで保管されます。

👮‍♀️ fzfをインストールする

z と少し被りますが、 fzf はコマンドを含め履歴検索できるツールです。

$ brew install fzf
$ fisher add jethrokuan/fzf

$ touch ~/.config/fish/config.fish
$ vim ~/.config/fish/config.fish

$ set -U FZF_LEGACY_KEYBINDINGS 0
$ set -U FZF_REVERSE_ISEARCH_OPTS "--reverse --height=100%"
“FZF_LEGACY_KEYBINDINGS”はfishの過去バージョンとコンフリクトが発生していたため、
新しいキーバインドを使用するのに必要だからです。

“FZF_REVERSE_ISEARCH_OPTS”は履歴のフィルタリング時に入力欄をターミナル上部に表示するための”–reverse”オプションと、
フルスクリーンで表示するための”–height”オプションを設定しています。

【Mac】fish + fisher + peco + fzfで快適なターミナル環境を構築 Public Constructor

🥦 展開されるalias - abbrのすごさよ

zsh だと zshrc にこんな感じでエイリアスを定義して使うんですが、

alias gst='git status -sb'

fish の abbr は

abbr -a gst git git status -sb

これで、 gstgit status -sb が展開されます。

展開されるところがわかりやすくていいですねー

[fish] 展開されるalias - abbr - Qiita

細かい使い方は以下を。

abbr:fish流別名!入力後に展開される短縮コマンドを定義

🍜 雑感

たまに自分のシェル環境を見直すと、いろいろ発見もあり、よりシンプルになるとうれしくなります。

毎日触るものなので、良くしていきたいですね!

それでは良いシェルライフを🎅🎄!

🧙 参考記事

fishshellのインストール - Qiita

fish shell のインストールと初期設定 - Qiita

fish shell を使いたい人生だった | Developers.IO

macOSをCatalinaにしたらfish shellの補完が遅くなった話 - ウキウキ?ワクワク? Yeah!! Happy!!