💻
【完全版】fish shell ~スーパーコマンドライン~
fish shell完全ガイド
この記事では、fish shellの設定、テーマ、プラグインまでハンズオンで設定していく
さあ、あなたもfishを使おう!
<完成後サンプル>
そもそもfishとは
まずはterminalかiTerm2で以下のコマンドを実行してほしい
$ echo $PATH
おそらくzshやbashがでるのではないだろうか
これがshell(シェル)である!
shellとは、osのカーネルとユーザー間の架け橋となるツールである
bash、zsh、などさまざまなシェルがあるが、今回はfishを使っていく
fishとは、シェルの一種なんだ!という理解で十分
install & fishに切り替える
1. fish shellをhomebrewでインストール
※ homebrewについて不安な方は、この記事を見てみてください!
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
for powerline
がつくものに選択
powerlineフォントをインストールしたら、terminal or iTerm2 のフォントを(自分は Source Code Pro for Powerline & font sizeは18)
コラム fish_config
$ fish_config と打って実行すると web ブラウザが立ち上がり、GUI で設定ができる
ここからでもいろいろな設定ができる
テーマをカスタマイズしたら忘れずに 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ディレクトリを見つけて移動
https://github.com/jethrokuan/z/blob/master/man/man1/z.md
リファレンス(README) =>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
使い方
おまけ
遊びで、fish のロゴを出力するプラグイン
install
$ fisher install laughedelic/fish_logo
使い方
$ fish_logo
# デフォルト
<出力>
$ fish_logo blue cyan green
# 色をカスタマイズ
<出力>
詳しい使い方 公式ドキュメント
Discussion
有益な記事をありがとうございます。
質問があります。
設定ファイルで、
config.fishに書き込むとありますが
どのように書き込んでいらっしゃいますか?
あまりコマンドに慣れていないものでして、
config.fishのファイルは作れたのですが、追記の方法がわかりません。
記事を読んで頂きありがとうございます!
config.fishへの書き込み方について返答いたします。
基本的にファイルに追記をしたり、ファイルの中身を変更したりする時は、エディタと呼ばれるアプリケーションを使用します。エディタという編集ソフトでファイルを開いて、そこに変更したい内容を書き込みます。
エディタにはいろいろな種類があり、好き嫌いは人それぞれですので、お好きなものをインストールしていただければと思います!(macにはデフォルトで"テキストエディタ"というエディタが入っています。)
ちなみに自分はvimというコマンドベースのエディタと、vscodeというマウスで操作するようなエディタを使い分けています。
(今回のconfig.fishを編集する時はvimを使用しました!具体的なコマンドは "$ vim ファイル名"でファイルを開き、"i"を押して編集モードに入ります。それからコードを追加し、編集し終えたら"esc"キーを押し、コマンドモードに入ります。それから"w"と"q"を順番に押し、Enterキーを押すと無事ファイルに変更が反映されているかと思います!)
↑ ここって、もしかして
$ echo $SHELL
のつもりで書いたのではないですか?