なんかみんなやってるしログインシェルいろいろ設定したいなーと思ったけど、ちょっと面倒だなと思っていたところにfishなるものが。楽しい。
とりあえず必要そうなものを入れてみたメモ。
(2021/05)
M1 macbookに乗り換えたので改めて見直し。大きくは変わってないはず。
(2020/11/25)
fisherがバージョン4系になり、 fisher add
ではなく fisher install
になった(というか戻った?)ようなので更新。(編集リクエストありがとうございます)
(2019/02/12)
だいぶインストール時のコマンドが変わったようなので更新。
事前準備
- brewのインストール
とりあえずこれだけあれば
fish設定
fish、fzf、ghq、fd、batインストール
※後述プラグインに必要なコマンドもインストールしてます
$ brew install fish fzf ghq fd bat
$ fish -v
/etc/shells
末尾に /usr/local/bin/fish /opt/homebrew/bin/fish
を追加。
2021/05追記
fishのインストール先が /opt/homebrew/bin/fish に変わったようです。
which fish
で確認するのが良さそう。
sudo vi /etc/shells
デフォルトシェルを fish に変更
$ chsh -s `which fish`
ターミナルを再起動して、fishシェルに切り替わっているか確認する
Welcome to fish, the friendly interactive shell
fisher install
fish用プラグインマネージャ。
インストール方法は変わることがあるため公式を見たほうがいいです。
$ curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
$ fisher -v
以下いろいろインストール。
z補間
fisher install jethrokuan/z
fzf補間
2021/05追記
今まで jethrokuan/fzf
を使っていましたが、こちらのプラグインがさらに優秀すぎて感動したので乗り換えました。おすすめ。
fisher install PatrickF1/fzf.fish
# OR 履歴検索だけで良ければこちらでも問題ない
fisher install jethrokuan/fzf
とりあえずこれで、Ctrl + Rで履歴検索ができる。
Ctrl + F でファイル検索もできる。
(Ctrl + F は自分は右矢印キーの機能としてよく使用するため、後述の「binding設定」で変更している)
他にも便利キーありますが詳細はgithubで。
ghq補間
fisher install decors/fish-ghq
クローン先を統一する。Ctrl + Gで対象リポジトリを検索して移動できる。
ghq get 対象リポジトリ
デフォルトは~/ghq以下に保存される。リポジトリ保存先変更するには以下。
git config --global ghq.root 保存先ディレクトリ
(2021/05追記)
3年ほどfish使ってきて以下あまり使ってないなと思ったので小さく。
bashの記法に対応
GitHub - edc/bass: Make Bash utilities usable in Fish shell
fisher install edc/bass
bdコマンドで親ディレクトリへ移動
fisher install 0rax/fish-bd
alias補完
fisher install oh-my-fish/plugin-balias
binding設定
でctrl + f
でファイル検索を行うkey bindingが設定されるが、これをctrl + s
に変更したいのでやってみる。(自分はctrf+f
を右移動としてよく使うため。)
~/.config/fish/conf.d/fzf.fish
にkey binding用の設定ファイルが生成されているのでこちらを変更する。
※本当は公式記載の、独自ファイルを生成して〜でやった方がいいと思うが、一箇所変更したいだけなので横着する
~/.config/fish/conf.d/fzf.fish
ファイル内の\cf
→\cs
に変更する
\c
がctrl
を意味するので\cs
でctrl + s
の意味になる。
\e
はescキー
のこと。
aliasなど設定
編集
- alias
~/.config/fish/config.fish
- 関数定義
~/.config/fish/functions
書式注意
bashと書式違うので注意。こちら対応表のリンク。
例えば
export PATH=/usr/local/bin:$PATH
↓
set -x PATH /usr/local/bin $PATH
独自のfunction定義したい
タブ補完
.config/fish/completions
以下にタブ補完用のスクリプトを置く。
公式リポジトリから持ってくる方法
https://github.com/fish-shell/fish-shell/tree/master/share/completions
gitの場合
curl https://raw.githubusercontent.com/fish-shell/fish-shell/master/share/completions/git.fish > ~/.config/fish/completions/git.fish
その他
fish_configコマンド
ブラウザが開いてコマンドラインのフォントや色をGUIで設定できる。楽しい。
fish_config
公式ドキュメントを開く
help doc