れんてゃんの備忘録

とりあえず何かしらをアウトプットしていきたい所存

推しメン(Fish shell)のお話

琉大 Advent Calendar 2019 5日目

adventar.org

はじめに

技術系のブログ(というかブログ)を書くのはこれが初めてなので拙いところが多々あると思いますが、暖かい目で見守ってくれると助かります。

また、アドバイスなどがあれば、コメントやTwitterで教えてくれると凄く嬉しいです。

それでは早速本題へ!

使用環境

macOS Mojave 10.14.5

Homebrew 2.2.0

Fishを使うと何が嬉しいか?

雑にまとめるとこんな感じ

  • デフォルトで色々いい感じなので、ほぼ設定いらず
  • シンタックスハイライトの機能がすごい
  • コマンドやオプションが合っているか、ひと目でわかる
  • コマンド入力中に補完が見える
  • ブラウザで直感的に設定をいじれる
  • カラフルでわかりやすい

詳しく知りたい方は公式サイト

とりあえずFishをインストール

brew install fish

念の為確認

fish -v
//fish, version 3.0.2

shellをFishに変更

まずはfishのパスを確認

which fish
/usr/local/bin/fish

次にfishを使えるshell一覧に追加します。

sudo -e /etc/shells

を実行するとPasswordを求められると思うので、自分のMacのPasswordをうち込んでください。すると以下の画面に移動するので

f:id:ie_renren:20191202140418p:plain

1番下に先ほどのパスを追加します。追加したら変更を保存します。

次に下のコマンドを実行するとPasswordを求められるので先程と同様にPasswordを打ち込みます。

chsh -s /usr/local/bin/fish

最後にターミナルを再起動、もしくは以下のコマンドをうち込んで新規タブorウィンドウを開くとfishになっています。

exec $SHELL -l

prompt変わってるし、上にfishって書いているのでfishになったっぽい。

f:id:ie_renren:20191202141752p:plain

設定

ターミナルで

fish_config

とうつと以下のようなWebページが出てくるので、ここで見た目をいじりましょう。 一応configファイルを作っても弄れますが、こっちの方が直感的でいじりやすい(と思う)のでオススメです!

f:id:ie_renren:20191202144544p:plain

Fishermanを導入

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

Fishermanの使い方

fisher -h

でサブコマンドの一覧を見ることができます。基本的には

fisher add user/foo

GitHubで公開されているプラグインをインストールすることができます。 削除するときは以下のコマンドで削除できます。

fisher rm foo

インストール済みのプラグインの一覧は

fisher ls

で見ることが出来ます。

オススメのプラグイン

オススメのプラグインと言うか、僕が入れているプラグインはこれだけです。

➜  ~ fisher ls
jethrokuan/fzf
jethrokuan/z
rafaelrinaldi/pure

jethrokuan/fzf

github.com

fisher add jethrokuan/fzf

Ctrl+oでファイルの曖昧検索

f:id:ie_renren:20191202154607p:plain

Ctrl+rでコマンド履歴の曖昧検索ができます。

f:id:ie_renren:20191202154624p:plain

詳しい説明や使い方はjethrokuan/fzfのREADMEに書いてあります。

jethrokuan/z

github.com

fisher add jethrokuan/z

簡単に言うと、すべてのディレクトリへ直接移動できるプラグインです。以下は実際にzコマンドを利用して移動する例です。

f:id:ie_renren:20191202152810p:plain

rafaelrinaldi/pure

github.com

fisher add rafaelrinaldi/pure

prompt次第ではgitのbranchがこんな感じで1目で分かるようにるっぽい?見れないpromptもあったけどあまりよく分かってないです。とりあえず見れるpromptを使えばいいと思います(適当)。

f:id:ie_renren:20191202145159p:plain

最後に

全く設定ファイルをいじる事なく(1回も触ってない...?)数少ないプラグインで、ここまで色々なことが出来るfishどうでしょうか?

見た目も簡単に変更することができ、またこの記事を読みながら手を動かしていた方なら分かってくださると思うのですが、補完やシンタックスハイライト、とても魅力的ですよね!

初心者でも使いやすいshellだと思うので、この記事を読んで使ってみようかな?と思ってくれた方是非使ってみてください!

琉大 Advent Calendar 2019 4日目の人

tegorori.hatenablog.com

琉大 Advent Calendar 2019 6日目の人

ie-renren.hatenablog.com