継続的に作業効率の向上に努めていて頭が下がる。自分はそういうことに十分注意を払えていないなと気付かされた。
これまで数年ごとにカスタマイズ至上主義とノーマル至上主義を行ったり来たりしていて、最近は「他人のマシンを使うことなんて滅多にないのだから(リモートワークなので)積極的にカスタマイズすべき」に傾きつつある。とはいえ拡張プラグインの類を入れすぎると長期的には不安定になるので、出来の良いプリセットを選び(Doom Emacs とか、使ってないけど oh-my-zsh とか)、単純だが効果的なカスタマイズを優先し(まさにシェルのエイリアスとか)、難しいことは得意なツールを併用する(何もかも Emacs でやらない、Go の lsp-mode のセットアップに苦労して時間を溶かすくらいなら VS Code を使う)、みたいなバランス感覚でやっている。
仕事用のマシン。なぜか ~/.zsh-history になっていた(_ ではなく -)。どこかから拾ってきた設定を闇雲に使いまわしたせい。
❯ wc -l ~/.zsh-history 62416 /Users/kyanny/.zsh-history
このマシンを使い始めて一年半。あまりコマンドラインを使って(使えて)いない。もっぱらブラウザばかり使っているからと、magit のおかげも多少はありそう。
❯ history 1 | awk '{ print $2 }' | sort | uniq -c | sort -nr | head
8186 git
5217 gh
2876 cd
2265 ls
2236 cat
1985 rg
1631 ruby
1534 ll
1451 vim
1378 bash
alias g=git は元からあったのにまったく使っていない。これを機に一文字エイリアスをちゃんと認識して使っていきたい。tig は上位には出てきていないが alias t='tig' は追加した。
❯ history 1 | awk '{ print $2,$3 }' | sort | uniq -c | sort -nr | head -n 20
1518 git s
1347 ls
1321 gh pr
1251 ll
1131 git pp
1006 em .
957 git co
933 pbpaste|./bs-review.rb
912 gh mine
799 gh api
782 gh co
657 tig
462 docker run
450 git log
442 cd ..
440 git push
429 git com
427 git a
417 git ci
403 open-draft
サブコマンド含めた集計結果。これは少し解説が必要だろう。
git pp は ~/.gitconfig で pp = !git pull -p && git-delete-merged-branches と定義しているやつで、https://github.com/kyanny/git-delete-merged-branches を使っている。ls 並に手癖で打っているのでエイリアス候補だなと思って alias gp='git pp' としてみた。
em . は https://github.com/mori-dev/em でカレントディレクトリを開くときに使う。参考: emacsclient のお供に em - @kyanny's blog これも一日に何度も打つのですでに十分短いが alias e='em .' としてみた。
pbpaste|./bs-review.rb というのは込み入っていて、個人的な仕事のワークフローの一部。仕事では Zendesk を使って顧客からの問い合わせを受け付けたり返信したりしているが、返信はテキストエディタで書きたいし、書いた内容はバージョン管理下に置きたいし、各返信ごとに Pull Request の permalink も欲しい(URL があると色々便利なので)。そこで、Zendesk の内部 API を叩いてチケットのタイトルや本文をクリップボードにコピーする自作 userscript を Violentmonkey にインストールしていて、クリップボードから読み出したデータをもとに社内専用の GitHub Enterprise Server インスタンスに作った個人リポジトリに Pull Request を作り、返信を書き終わったらマージ、というワークフローを構築した。bs-review.rb というスクリプトが Pull Request を作るやつ。このコマンドも毎日何度も実行するので、bs-review.rb を pr にリネームして p|./pr と短く打てるようにした。
gh mine は GitHub CLI のエイリアスで、gh pr list -a kyanny の略。これも仕事のワークフローで以前は頻繁に使っていたけど、今はあまり使わなくなった。
open-draft は上記のワークフローで昔 VS Code をエディタとして使っていた頃の名残で、返信を書くべきファイルをエディタで開くのが若干手間だったので一発で開くショートカットとして使っていた。Emacs の markdown-mode が意外に強力だと知って以来 VS Code ではなく Emacs で書くようになったので(参考: Emacs: markdown-mode は Markdown ファイルを Typora みたいな WYSIWYG な見た目でも編集できる - @kyanny's blog])、それ以来使わなくなってエイリアスも消した(Emacs の場合 magit 経由で比較的少ない手間で対象ファイルを開けるようになったので)。
あとは alias p=pbpaste と alias pc=pbcopy も追加した。pbpaste は特にたくさん使うのに、pbp まで打たないとタブで補完できないため。
エイリアス、追加したはいいが指が覚える前に忘れてしまうことばかりなので、丁寧に覚え込ませていきたい。