トップ «前の日記(2018/08/26 (日) ) 最新 次の日記(2018/08/28 (火) )» 編集 RSS feed

HsbtDiary


2018/08/27 (月) [長年日記]

シェル大活用講座で fish の話をした

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 を駆使している。何かを開発するときのワークフローの例はこちら。

  1. ghq get https://github.com/rails/rails
  2. CTRL+g で rail くらいまで打ち込んだら rails/rails が出てくるのでジャンプ
  3. bundle ins でセットアップ、e . で vscode 起動して開発
  4. 2回目以降は j にリマップした z を使って 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 は話せるくらい色々方針や選び方があるだけど今日はここまで。