ターミナルがとりあえずいい感じになった話

はじめましての人ははじめまして。そうでないひとはお久しぶりです。猫ロキP(@deflis/id:deflis55)です。

以下の話の続きとして、続ターミナルの話をしたいと思います。

deflis.hatenablog.com

身の回りの状況としてはあまり変わってなくて、やっぱり数ヶ月前と同じようにWindowsmacOSとArch Linux(WSL)を中心に使っています。

最近新しくThinkPad E14 Gen5を買ったのですが、それもいい感じになっています。

なんかもう半年で、これでいいやって感じになったのでそれを書いておこうと思います。

設定管理 : Chezmoi

www.chezmoi.io

Chezmoiはもう手放せなくなりました。設定管理ツールの決定版という感じで、かなりchezmoiに依存した設定ファイルが生まれてきています。

Sheldonは完全にやめたので、どうやってChezmoiだけを使ってプラグインを管理してるかを書いておきます。

例えば ni.zsh を導入したいときは .chezmoiexternal.toml にこう書きます

[".config/zsh/plugins/ni.zsh"]
  type = "file"
  url = "https://raw.githubusercontent.com/azu/ni.zsh/main/ni.zsh"
  refreshPeriod = "168h"

dotfiles/.chezmoiexternal.toml at 87d031d0f8d0d1c9487e5303f53dc000963a135a · deflis/dotfiles · GitHub

これは .config/zsh/plugins/ni.zshhttps://raw.githubusercontent.com/azu/ni.zsh/main/ni.zsh を置くというChezmoiの機能です。 168時間(一週間)ごとに更新してくれるのでアップデートも自動で追従できます。 アーカイブから解凍するなどもできるので、詳しくは公式のドキュメントを読んでください。

これでプラグインのファイルは置かれるようになるのでそれを .zshrc で読み込みます。(この例では別途 zsh-defer を導入したり $ZDOTDIR を指定していますがその辺はいい感じに読み替えてください)

zsh-defer source $ZDOTDIR/plugins/ni.zsh

dotfiles/private_dot_config/zsh/dot_zshrc at 87d031d0f8d0d1c9487e5303f53dc000963a135a · deflis/dotfiles · GitHub

これによって、zplugやsheldonなどを使わずにプラグイン管理が出来ます。

これでvimプラグインなども管理できますし、さらに上手く使えばプラグイン以外の外部リポジトリのファイルも管理できるので外部の実行ファイルを置いたりとかも出来そうです。使い方はあなた次第という感じですね。

ターミナル : wezterm

wezfurlong.org

Kittyから完全に乗り換えてしまいました。tmuxもタブぐらいにしか使ってなかったので、逆に高機能なターミナルに移行してしまったほうが早そうということでがっつりと移行しました。 まだ設定のluaファイルは全然煮詰められてないんですが、そんなに設定しなくても最低限いい感じに使えているのもいいところです。Windows Terminalほどかゆいところには手が届かないんですが。

ただ、Windows環境でレンダリングが変なことがあるのでWindowsはまだWindows Terminalがメインです。なんか設定もわかりやすいし、Windowsならこれ使っとけでいい気がしています。weztermはおそらくmacOS/Linuxが主戦場なので、Windowsは第一級サポートではなさそうな感じはしています。

シェル : zsh / PowerShell

UNIX環境では、今のところもうzsh以外考えられないと思うようになりました。シンプルかつ拡張性も高いので、様々なツールがある環境の良さはほかにないところじゃないかなと思います。

一方Windowsでは第一級サポートのPowerShellが一歩抜きん出ているのかなと思います。 nushellも試していたりはするのですが、どうしても慣れ親しんだzshみたいな挙動には出来ず、妥協するならPowerShellでいいかという感じになっています…。起動遅いけどね。

ランタイムバージョン管理 : rtx

github.com

rtxに完全に移行しました。ネイティブなので高速に動作するのと、これで十分要件を満たすからです。 nodejsでcorepack使ってるときどうするのとかあるんですが、ni.zshとかを導入したのでなんとかなるだろうと思っています。

ただ、Windows環境でnodeを直で動かすときどうする問題は残ったままです。いったんfnmを導入してみていますが、nushell対応がいまいちだったりっとこれといった解決法はないままずるずる進んでいます。

おわりに

いったん、自分の中で結論を出してはみました。またしばらくすると新しいツールが出てきてこっちの方がいいじゃんってなるかもしれませんが、そのときにまた考えようと思います。Windowsのnodejsまわりは避けて通るの難しいからどうにかならないかな…?