
ターミナルとかCLIツールをいい感じにした
2年ぶりにこんにちは。ちょこみんとです。 最近はターミナルから利用するAI Agentが流行りです。おかげで近頃ターミナルを利用する時間が増え、 適当にやっていたターミナルとCLIツールをいい感じに整備したいな~と思うようになりました。 というわけで、いい感じに整備した記録を忘れないように書いておきます。 ※最近はmacで開発を行っているので記事の内容はmacOS向けです。 開発ツールの管理をmiseに移行した これまでFlutterのバージョン管理はfvm、Node.jsはnvmを利用してバージョン管理をしていました。 使う言語やツールが増えるたびにバージョン管理ツールも増えるのがめんどくさいよ~と思っていたところにmise(ミーズ)というツールがあることを知りました。 miseを利用することで、言語のバージョン管理、環境変数の管理、タスクランナー3役をmiseのみで完結させることが出来ます。 fvm、nvmなどを介さずにasdf(あるいはnvmやpyenvなど、ただしあらゆるプログラミング言語に対応)と同様に、 node.js、Python、CMake、Terraformなどの開発ツールや、数百種類にも及ぶその他のツールを管理します。 direnvと同様に、異なるプロジェクトディレクトリごとに環境変数を管理します。 makeと同様に、プロジェクトのビルドやテストに使用するタスクを管理します。 (miseのREADMEより) というわけで、fvmとnvmをアンインストールして全部miseでバージョン管理するようにしました。 ターミナルをGhosttyにした これがそもそもの開発環境を整備しようとした一番の原因になります。 いままでターミナルはWarpを利用していましたが、 Codex CLIで変換を確定した際にプロンプトが送信されてしまう 気がついたらWarpにいろんな機能が増えてIDEみたいになってしまった ということがあり、ターミナルを変えることにしました。 候補としてはAlacrittyやWezTermなどがあったのですが、 プラットフォームのネイティブのUI Unicodeまわりの対応を頑張っているらしい Mitchell Hashimoto氏のポスト なんか新しくてよさそう という3点でWarpからGhosttyに移行することにしました。 WarpとmacOS標準のターミナル以外を使ったことがないのでぶっちゃけ違いはわかりませんが、GhosttyではIME周りの問題が発生していないのでいい感じな気がしています。 .zshrcを整備した 上に書いたように、ターミナルはこれまでWarpを利用していたのですがWarpは設定しなくても色々よしなにやってくれることがウリでした。 しかし、Ghosttyに移行したことで設定や挙動のカスタマイズは自分でやる必要があります。 これを機に、雰囲気で書きすぎていて設定が意味不明だった.zshrcをちゃんと書くことにしました。 具体的には、 プラグインをsheldonで管理するようにする プラグインを入れる romkatv/powerlevel10k zdharma-continuum/fast-syntax-highlighting zsh-users/zsh-autosuggestions 補完や履歴の設定をちゃんと書く ということをやりました。 詳しい設定は後に書くdotfilesのリポジトリをご覧ください。 dotfilesを始めた これまでCLIツールの設定ファイルがどこに格納されているか設定を変更するたびにドキュメントをみて探していたのですが、 これでは流石に効率が悪すぎる 会社のPCでも同じ設定を使いたい という思いがあり、重い腰を上げてdotfilesで各種設定ファイルを書くことにしました。 dotfilesの管理にはchezmoiを利用しています。 詳しい設定はdotfilesのリポジトリをご覧ください。 成果 というわけでターミナルとかCLIツールをいい感じに整備したわけですが、整備した甲斐あってこれまで雰囲気で書いていた設定の意味を理解できるようになったり、 入れるだけ入れて眠っていたCLIツールを活用できるようになったりと色々いいことがあったのでやってよかったな~と思います。 気が向いたら.zshrcとdotfilesについても詳しく記事を書こうと思います。気が向いたら。 ではまたいつか会いましょう。ちょこみんとでした。
