私の好きなアプリの一つInkdropの開発者であるTakuya Matsuyamaさんがfishについてyoutube配信をしていました。
これを見て、「fishはなんて素晴らしいんだ!!」と思ってzshからfishに乗り換えた話。
youtubeを見ながらマネしたことを記述していきます。
必要なアプリをインストールしていきます。
brew install fish
このfishに載せ替えていきます。
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
fishのプラグイン管理マネージャー。
fisher install simnalamburt/shellder
ブランチ名を表示してくれます。
brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
shellderでリモート先と差分があるときに出力する矢印はNerd Fontsを使っています。
fisher install jethrokuan/z
ディレクトリへの移動を履歴と頻度から予測してくれます。
brew install exa
ディレクトリ構造をいい感じに色付けして表示してくれます。
brew install ghq
git cloneしたリポジトリの管理をしてくれます。
brew install peco
コマンド履歴やディレクトリの検索を簡単にしてくれます。
ターミナル起動を提供してくれます。
Takuya Matsuyamaさんがいい感じでセットアップした設定情報があるのでそれを使います。
git cloneするのにさっそくghq getしてみましょう。
ghq get craftzdog/dotfiles-public
終わったらconfigフォルダをコピーします。
cp -rf ~/ghq/github.com/craftzdog/dotfiles-public/.config ~/.config
fishのpathを確認して追記します。
$ which fish
/usr/local/bin/fish
$ vi /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.fish
zsh
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.fish
ctrl + f
でディレクトリを検索することができます。
表示内容は現在の作業ディレクトリ配下やghq getしたディレクトリなどです。
ディレクトリを簡単に移動することができます。
~/.config/fish/functions/pecochangedirectory.fish
zはディレクトリへのアクセス履歴とアクセス頻度から予測して、簡単なディレクトリ移動を提供してくれます。
例えばhomeからz dot
とすると、さきほどghq get craftzdog/dotfiles-publicしたリポジトリのディレクトリへ移動します。
ディレクトリのキーワードがわかれば、予測して移動を手伝ってくれます。
このようにzshからfishに乗り換えることで、また既存のを組み合わせることで素晴らしいユーザー体験を獲得することができたのではないでしょうか。
このようなのを配信してくださるTakuya Matsuyamaさんには感謝しかありません。
次はNeoVim編もあるのでそれもマネしていこうと思います。