https://twitter.com/june29/status/1033960082596188161
新しく入社したエンジニアが、みんなのシェル設定など知りたい〜というイベントを企画してくれたので、fish の設定や周辺ツールについて話してきた。以下が話したことの内容です。
前提として tcsh や bash, zsh もノーマルの設定で普通に使えるくらいには使えるという前提で手元の環境をとにかく設定ファイルを書かずに、こう動いてほしいという期待通りに近い状態にできるというのが fish なので fish を今は使ってる。最初に、 brew install fish
してインストール。設定ファイルは ~/.config/fish/config.fish
に書いてる。
~ > wc -l ~/.config/fish/config.fish
29 /Users/hsbt/.config/fish/config.fish
設定内容はこれだけ。set -x
でいくつかグローバルな環境変数を入れて、あとは alias と function だけ。設定は fisherman を使って入れる。
$ fisher z
$ fisher fzf
$ fisher rbenv
$ fisher pyenv
$ fisher decors/fish-ghq
$ fisher docker-fish-completion
$ fisher kubectl-completions
今確認したらこれくらいしか入れてなかった。とにかくキーのタイプ数を減らしたいので fuzzy finder を駆使している。何かを開発するときのワークフローの例はこちら。
ghq get https://github.com/rails/rails
e .
で vscode 起動して開発j rai
くらいまで打ち込んでリターンして移動Ctrl+g が自分のタイプスピードと 0.5-1sec くらい差分があって、finder が開くよりも前に type したことで反映されないことがあって、イライラするので起動はもっと速くなってほしい。その他周辺ツールは rust 製のを積極的に使っている。
rust で作り直したプロダクトは、いずれもとにかく速いのと機能が欲しかったもの、というのが多いのでだいたい信頼している。ls
じゃなくて l
で exa を起動するように alias して最近はだいぶ慣れた。
Ruby のソフトウェアを開発するときに特に使っているのは gem-codesearch と all-ruby, この辺は RubyKaigi 2018 などで発表した通り。
前者は世の中のだいたいの Ruby のコードの使われ方を検索するもので、後者は Ruby のコードの振る舞いを世の中にある Ruby インタプリタに確認するという使い方かな。
他にも git や *env 系の設定、cargo や go でこういう感じの環境にしているというようなそれぞれ個別に 30min は話せるくらい色々方針や選び方があるだけど今日はここまで。