私の好きなアプリの一つInkdropの開発者であるTakuya Matsuyamaさんがfishについてyoutube配信をしていました。
これを見て、「fishはなんて素晴らしいんだ!!」と思ってzshからfishに乗り換えた話。
youtubeを見ながらマネしたことを記述していきます。
必要なアプリをインストールしていきます。
brew install fishhttps://fishshell.com/
このfishに載せ替えていきます。
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisherhttps://github.com/jorgebucaran/fisher
fishのプラグイン管理マネージャー。
fisher install simnalamburt/shellderhttps://github.com/simnalamburt/shellder
ブランチ名を表示してくれます。
brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-fonthttps://github.com/ryanoasis/nerd-fonts
shellderでリモート先と差分があるときに出力する矢印はNerd Fontsを使っています。
fisher install jethrokuan/zhttps://github.com/jethrokuan/z
ディレクトリへの移動を履歴と頻度から予測してくれます。

brew install exahttps://the.exa.website/
ディレクトリ構造をいい感じに色付けして表示してくれます。
brew install ghqhttps://github.com/x-motemen/ghq
git cloneしたリポジトリの管理をしてくれます。
brew install pecohttps://github.com/peco/peco
コマンド履歴やディレクトリの検索を簡単にしてくれます。
https://iterm2.com/index.html
ターミナル起動を提供してくれます。
Takuya Matsuyamaさんがいい感じでセットアップした設定情報があるのでそれを使います。
https://github.com/craftzdog/dotfiles-public
git cloneするのにさっそくghq getしてみましょう。
ghq get craftzdog/dotfiles-public
終わったらconfigフォルダをコピーします。
cp -rf ~/ghq/github.com/craftzdog/dotfiles-public/.config ~/.configfishのpathを確認して追記します。
which fish
/usr/local/bin/fishvi /etc/shells
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish # ←ここに追記
次のコマンドでついにzshともおさらばです。
chsh -s /usr/local/bin/fishせっかくのshellderが文字化けしているのでフォント設定をします。
Preferences >> Profiles >> Text
Nerd Fontに設定します。
これで準備完了です。
vscodeのterminalも文字化けしていたので設定を変更します。
Preferences >> Settings
検索バーにterminal fontを入力するとTerminal > Integrated: Font Familyという項目があるのでここでも'Hack Nerd Font Mono'を指定します。
いろいろと変更点があります。
zsh
~/.zshrc
fish
~/.config/fish/config.fishzsh
export PATH="パス:$PATH"
fish
set -gx PATH パス $PATH簡単に使い方を説明していきます。
llかllaをすることでいい感じに色付してくれます。
隠しファイルまで見たいときはlla。
ちなみにこんな感じで設定してあります。
$ cat .config/fish/config-osx.fish
if type -q exa
alias ll "exa -l -g --icons"
alias lla "ll -a"
endセットアップのときにも使用したリポジトリ管理ツールです。ghq get リポジトリ名でcloneしてくれます。
cloneしたのは~/ghq/配下にできます。
ちなみにghq get -p リポジトリ名でsshにも対応しています。ghq listでgetしたリポジトリを一覧で表示することができます。
これはあとのpecoで連携できるようになっているのでリポジトリ管理が楽になります。
ctrl + rでコマンド履歴を検索することができます。
複雑なコマンドを覚えなくてもいいのが良いところです。
~/.config/fish/functions/peco_select_history.fishctrl + fでディレクトリを検索することができます。
表示内容は現在の作業ディレクトリ配下やghq getしたディレクトリなどです。
ディレクトリを簡単に移動することができます。
~/.config/fish/functions/pecochangedirectory.fishzはディレクトリへのアクセス履歴とアクセス頻度から予測して、簡単なディレクトリ移動を提供してくれます。
例えばhomeからz dotとすると、さきほどghq get craftzdog/dotfiles-publicしたリポジトリのディレクトリへ移動します。
ディレクトリのキーワードがわかれば、予測して移動を手伝ってくれます。
いかがでしたでしょうか。
このようにzshからfishに乗り換えることで、また既存のを組み合わせることで素晴らしいユーザー体験を獲得することができたのではないでしょうか。
このようなのを配信してくださるTakuya Matsuyamaさんには感謝しかありません。
次はNeoVim編もあるのでそれもマネしていこうと思います。