fish shellの何がいいって、デフォが楽だし、ちょっと楽しいんですよ
手元のシェルを快適にするなら、bashを育てるより、fishで育てたほうがいい。
booth.pm fishshell.com fish.rubikitch.com
インストール
シェルまわり整備。
sudo apt install fish peco ripgrep golang micro xclip sudo snap install starship ghq get https://github.com/x-motemen/ghq curl https://git.io/fisher --create-dirs \ -sLo ~/.config/fish/functions/fisher.fish fisher add decors/fish-ghq fisher add oh-my-fish/plugin-peco fisher add oh-my-fish/plugin-balias
実際aptやsnapのパッケージはansibleで管理しています。fishのconfもちゃんとgithubに上げよう
設定
ログインシェルはbashのままで、bashrcの末尾からfishを呼んでます。bash側でrbenvとかnvmとか整備させて、fish側は操作性に専念します。
tail -n1 ~/.bashrc exec fish
たいして育ってない。派手に使い込んではいないので。
function fish_maintenance # fishのオートコンプリートの更新 fish_update_completions # fisher自体のアプデ fisher self-update # fisherで入れたプラグインのアプデ fisher end function fish_user_key_bindings bind \cr peco_select_history end set GHQ_SELECTOR peco # pip3 set PATH $HOME/.local/bin $PATH # go get set PATH $HOME/go/bin $PATH # sasasin origin shell scripts set PATH $HOME/scripts $PATH # https://micro-editor.github.io/ # viと比べて micro は長いしダルい、miなら右手だけで打てる balias mi "micro" # https://microk8s.io/docs balias mkctl "microk8s kubectl" # https://starship.rs/ # starship が面倒なく使えたんで starship init fish | source
操作
- ctrl+g でghq get してきたリポジトリを探す
- ctrl + r でhistory検索
- めんどくさくなったら fish_maintenance で気分を紛らわせる
- 補完が、あれこれ設定せずデフォの状態で、強力なのがいい。bash completionをせっせと集めたり、書いたりしなくとも、manpageから補完を生成してるらしい。IDEみたくtabキーでスパスパ出てくるの楽しすぎる
シェルスクリプト
~/.config/fish/functions
にいろいろ置くかというと、ぜんぜん置いてなくて、むしろ bash で書いて ~/scripts
に散らかしてます。シェルスクリプトにしようと思うのは、いくつかの環境で使いまわす気がする事柄なので、基本入ってないfishよりも、まあ、bashで書きますでしょう。
結論
いろいろ整備したローカルより、bashしか入ってないリモートやDockerコンテナ内で活動してることのほうが多いので、完全に自己満足ですね。だがそれが楽しい