PCを新調したのを期に、ターミナルの環境をiTerm2+tmuxをWezTermに移行した。とくに不満はなかったのだけど、iTerm2の設定をぽちぽちする*1ことを考えるとこれ数年おきにやるのか……と思ってしまったので心機一転、設定をLuaで管理できるというWezTermを使ってみることにした。
偶然以下の記事を見ていたのが大きい。設定も基本これをぱくった。
Okay, I really like WezTerm | Alex Plescan
いいところ
- Luaで設定できる。別にLuaが書きたいわけではなくてVCSで管理できるのがよい。
- WezTerm単体で、キーボードのみで文字列選択・コピーができる(Copy Mode)。これまではこの用途にtmuxを使っていたのでシンプルになってうれしい。
- さらに、コピーしたいところまでカーソルを動かさなくていい Quick Select というモードがある。URLやパス、ハッシュ値などのパターンを画面内で認識して少ないキータイプでコピーできる。
- tmuxと組み合わせるとiTerm2で実現できなかった(と思う)、シェルプロンプトへのジャンプができるようになった(Shell Integration、ScrollToPrompt)。
- コマンドパレットがあるので、キーバインドを設定してない、自分が詳しくないコマンドもわりと簡単に実行できる。
- wezterm のサブコマンドで画像の表示もできる(iTerm Image Protocol)。
- カラーテーマがデフォルトで提供されている、設定ファイルは自動リロードされるなど細かいところも便利。
自分の設定
https://github.com/motemen/dotfiles/blob/master/.config/wezterm/wezterm.lua
だいたいドキュメントを読めばやりたいことは実現できるが、いくつか設定中に困ったところがあったので、メモしておく。
- コピーモードに入る際に前回の検索内容をクリアできなくて、思ってないところにカーソルが飛んでしまうことがある。これはまだ修正されていないので、ワークアラウンド的に検索モードを抜ける際に検索内容をクリアすることで対応とした。
- IMEでの変換時にCtrl-HするとWezTermにキー入力が食われちゃうので、
config.macos_forward_to_ime_modifier_mask = 'SHIFT|CTRL'
する。 - カーソルを点滅させる設定は
config.default_cursor_style = 'BlinkingBlock'
。
WezTermいいね。いっぽうでiTerm2には大変お世話になった。ありがとうiTerm2(寄付済み)。
*1:たぶん設定のエクスポートはできるが、やってなかった