26
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ログインシェルをfishにしてみる

Last updated at Posted at 2017-10-14

なんかみんなやってるしログインシェルいろいろ設定したいなーと思ったけど、ちょっと面倒だなと思っていたところに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に変更する

\cctrlを意味するので\csctrl + sの意味になる。
\eescキーのこと。

aliasなど設定

編集

  • alias
    ~/.config/fish/config.fish
  • 関数定義
    ~/.config/fish/functions

書式注意

bashと書式違うので注意。こちら対応表のリンク
例えば

export PATH=/usr/local/bin:$PATH
↓
set -x PATH /usr/local/bin $PATH

独自のfunction定義したい

bashやfishの起動時設定ファイル整理

タブ補完

.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

参考サイト

26
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?