MJHD

エモさ駆動開発

チーム異動後のターミナル周り

半年前にチームの移動をした。プロダクトは同じだが、サーバからWebフロントへポジションチェンジした。

以前からvimを使っていたが、Go言語はlspへの過渡期があったためIntelliJvimバインドを使用するなどCLI離れをしていた。 チームの異動後はTypeScriptを書くことが多く、vimをメインに使用するようになったため、CLI周りの見直しをよく行う様になった。

dotfiles

dotbotというdotfilesを管理するOSSを入れた。 デフォルトでは、dotfilesへのシンボリックリンクを作成してくれる機能ぐらいしかないが、gitのサブモジュールとしてdotbot-brewなどを追加することで、brewを使ったパッケージの自動インストールなどもできるようになる。 macOSとWSLを触ることが多いため、brewaptyayの三つに対応し、普段の開発に必要なツールのインストールを行うようにした。 今まではシェルスクリプトでこのあたりの処理を書いていたが、メンテナンスするのが面倒になってきていた。dotbotyamlだけメンテナンスすれば良いので楽。

vim

設定ファイルをシンプルに

今までは.vimrcファイルをかろうじてneovim以外でも動くよう、ifなどで分岐をしていたが、これを一切やめた。 また、deinautoloadを使って、プラグインが読み込まれた時に設定も読み込まれるようにした。設定ファイルも自然と分割する様になるため、かなり見た目もスッキリした。 副作用として、vimscriptちょっとかけるようになってきた。

ちゃんと操作できるように

正直今までのvimの使い方はvimmerとして酷いものだった。十字キー万歳、テキストオブジェクトをほぼ知らない、プラグインキーバインドはデフォルト。 これをかなり意識して直すようになった。 実践vimを読み進めながら矯正中。

yabai

ターミナルからは少し離れるが、yabaiというOSSを使っている。 タイル型ウィンドウマネージャなのだが、割とマウス操作もサポートしているのが特徴。 今で、Macのタイル型ウィンドウマネージャAmethstなどを使用していたが、バグが多く挙動が不安定なため、使用を諦めていた。 yabaiはその点、割と安定して動作している。(もちろんバグもあるが、設定でカバーできる)

yabaiを使っている様子

動画をPiPっぽく表示したり、Fn+マウスでリサイズ、移動、入れ替えなど様々な挙動ができる。

skhd

ホットキー管理のOSSであるskhdは上記yabaiとセットで使うと便利で、yabaiのウィンドウレイアウトの変更やPiPの切り替え、ターミナルの起動など、様々な連携をホットキーにより設定できる様になる。 Ctrl+Shift+Enterでターミナルが立ち上がり、ウィンドウの配置も自動で行ってくれるため、すぐにコマンドを打ち始めることができる。 動画などはAlt+PでPiP表示にしたり、Alt+Eで分割の方向を変更したり、ウィンドウを半透明にしたりできる。

yabaiとskhdの組み合わせを使い始めたことは今年一番実りのある行為だったかもしれない。

ターミナルエミュレータ

最近はkittyhyperalacrittyなど、クロスプラットフォームGPUレンダリング可能なターミナルをいくつか試していた。(WSLでも同じものを使用したいため、Windowsバイナリが配布されてる必要がある) が、どれも顕著なバグがあり(kittyはコピペ周りでバグるし、日本語ダメ。hyperは描画が崩れる&コピペバグる)またiTerm2に戻ってきてしまった。 WSLで使えないため、まだまだ彷徨う必要がありそう。