💻

【完全版】fish shell ~スーパーコマンドライン~

2021/05/31に公開
3

fish shell完全ガイド

この記事では、fish shellの設定、テーマ、プラグインまでハンズオンで設定していく

さあ、あなたもfishを使おう!

<完成後サンプル>

altテキスト

そもそもfishとは

まずはterminalかiTerm2で以下のコマンドを実行してほしい

$ echo $PATH

おそらくzshやbashがでるのではないだろうか
これがshell(シェル)である!
shellとは、osのカーネルとユーザー間の架け橋となるツールである
bash、zsh、などさまざまなシェルがあるが、今回はfishを使っていく

fishとは、シェルの一種なんだ!という理解で十分

install & fishに切り替える

1. fish shellをhomebrewでインストール

homebrewについて不安な方は、この記事を見てみてください!
https://zenn.dev/sawao/articles/e7e90d43f2c7f9

2. fish shellにシェルを切り替える

$ brew install fish
$ sudo vi /etc/shells   #  末尾に /usr/local/bin/fish を追加
$ chsh -s /usr/local/bin/fish  # デフォルトシェルを fish に変更

fisher install

1. パッケージマネージャー fisherをインストール

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

install oh-my-fish/bobthefish

1. 画期的な見た目を自動で生成してくれるプラグインをインストール

2. 文字化けするので、Powerlineフォントをインストール

$ fisher install oh-my-fish/theme-bobthefish
$ git clone https://github.com/powerline/fonts.git
$ cd fonts
$ ./install.sh
$ rm -rf ./fonts

powerlineフォントをインストールしたら、terminal or iTerm2 のフォントをfor powerlineがつくものに選択

(自分は Source Code Pro for Powerline & font sizeは18)

コラム fish_config

$ fish_config と打って実行すると web ブラウザが立ち上がり、GUI で設定ができる

altテキスト

ここからでもいろいろな設定ができる

テーマをカスタマイズしたら忘れずに SetTheme を押そう!

設定ファイル

1. ログイン時に実行されるファイル

~/.config/fish/functions/fish_greeting.fish


function fish_greeting
  set_color $fish_color_autosuggestion
  echo "Hello, your name is Yuta. Now, Let's programming!!"
  set_color normal
end

2. ほとんどの設定をここに書く

~/.config/fish/config.fish


#view
set -g theme_display_date yes
set -g theme_date_format "+%F %H:%M"
set -g theme_display_git_default_branch yes
set -g theme_color_scheme dark

#path
set -x PATH $HOME/.nodebrew/current/bin $PATH

set -x PYENV_ROOT $HOME/.pyenv
set -x PATH  $PYENV_ROOT/bin $PATH
pyenv init - | source

#peco setting
set fish_plugins theme peco

function fish_user_key_bindings
  bind \cw peco_select_history
end

# view の設定を説明

- set -g theme_display_date yes → 日付表示します

- set -g theme_date_format "+%F %H:%M" → 日付のフォーマット指定

set -g theme_display_git_default_branch yes → git のブランチ master と main も表示

set -g theme_color_scheme dark → bobthefish のテーマが選べる デフォルトは dark

#path のところに, node や pyenv の記述をしているが、使わない人は書かなくて良い

プラグイン

様々な便利なプラグインがあるが特におすすめな 4 つをインストールする

1. z


ディレクトリを自由に移動できるプラグイン

install & setting

$ brew install z
$ fisher install jethrokuan/z

使い方

$ z hoge
// 過去に移動したディレクトリからhogeディレクトリを見つけて移動

リファレンス(README) => https://github.com/jethrokuan/z/blob/master/man/man1/z.md

2. peco


コマンドを履歴から検索できるプラグイン

install & setting

$ brew install peco
$ fisher install oh-my-fish/plugin-peco

使い方

先程 ~/.config/fish/config.fish ファイルで設定を記入したため、Ctrl+w で使用できる

3. fish-bd


ディレクトリを上に遡れるプラグイン

install & setting

$ fisher install 0rax/fish-bd

使い方

$ bd <ディレクトリ名>

4. fzf


コマンドやファイルの検索

install & setting

$ brew install fzf
$ fisher install jethrokuan/fzf

使い方

altテキスト

おまけ


遊びで、fish のロゴを出力するプラグイン

install

$ fisher install laughedelic/fish_logo

使い方

$ fish_logo
# デフォルト

<出力>

$ fish_logo blue cyan green
# 色をカスタマイズ

<出力>

詳しい使い方 公式ドキュメント

終わりに

fish のいいところ (個人的)

1. 見た目がかっこいい

altテキスト

2. 補完が優秀

altテキスト

fish 使ってこーぜ!!

Discussion

ずんたずんた

有益な記事をありがとうございます。
質問があります。

設定ファイルで、
config.fishに書き込むとありますが
どのように書き込んでいらっしゃいますか?

あまりコマンドに慣れていないものでして、
config.fishのファイルは作れたのですが、追記の方法がわかりません。

Sawao CEO at Deepreneur(ディープレナー)Sawao CEO at Deepreneur(ディープレナー)

記事を読んで頂きありがとうございます!
config.fishへの書き込み方について返答いたします。
基本的にファイルに追記をしたり、ファイルの中身を変更したりする時は、エディタと呼ばれるアプリケーションを使用します。エディタという編集ソフトでファイルを開いて、そこに変更したい内容を書き込みます。
エディタにはいろいろな種類があり、好き嫌いは人それぞれですので、お好きなものをインストールしていただければと思います!(macにはデフォルトで"テキストエディタ"というエディタが入っています。)
ちなみに自分はvimというコマンドベースのエディタと、vscodeというマウスで操作するようなエディタを使い分けています。
(今回のconfig.fishを編集する時はvimを使用しました!具体的なコマンドは "$ vim ファイル名"でファイルを開き、"i"を押して編集モードに入ります。それからコードを追加し、編集し終えたら"esc"キーを押し、コマンドモードに入ります。それから"w"と"q"を順番に押し、Enterキーを押すと無事ファイルに変更が反映されているかと思います!)

bobonbabobonba

まずはterminalかiTerm2で以下のコマンドを実行してほしい

$ echo $PATH

おそらくzshやbashがでるのではないだろうか

↑ ここって、もしかして$ echo $SHELL のつもりで書いたのではないですか?