iTerm2っぽいWezTermの設定
普段はiTerm2を使っていますがiTerm2由来の不具合に遭遇してしまったため一時的にWezTermを使用しています.
iTerm2の使用感に慣れており,満足していたため,iTerm2の使用感を目指します.
iTerm2に満足している方はiTerm2を使い続けるのがよろしいと思いますし,iTerm2に満足できなくてWezTermを使い始めた方にはあまり参考にならないかもしれません.
iTerm2には私は使ってない高度な機能があるようですが,使っていないので再現しません.
この程度の設定しかしないならghosttyの方が早いです
私の実際の設定fileは以下です.
設定の基本
設定fileは$HOME/.config/wezterm
にwezterm.lua
というfileを作ります[1].
設定はLua言語で記述します.
設定fileの構造は
local wezterm = require("wezterm")
local config = wezterm.config_builder()
-- ここに設定を書く
return config
の形になります.以下の設定は-- ここに設定を書く
の部分に記述されています.
-
$HOME//.wezterm.lua
にも置けるようですが私の場合は設定が読み込まれませんでした. ↩︎
設定に関する設定
以下の設定をすると設定を変更した際に再起動なしで設定が反映されます.
config.automatically_reload_config = true
font
以下のようにお好きなfontに変更しましょう.
iTerm2はanti-alias設定がありweight="Regular"
でもいい感じでしたがWezTermはそのような機能はなさそうで,weight="Bold"
に設定するといい感じになりました.
config.font = wezterm.font("UDEV Gothic NF", { weight = "Bold" })
config.font_size = 16.0
参考
colorscheme
お好きなcolorschemeに変更しましょう.
iTerm2の場合は,Tokyo Nightというdefaultで用意されていないcolorschemeにしたい場合,Tokyo Nightのrepositoryから設定fileを取ってきてiTerm2にそれを読み込ませて...とやっていました.
WezTermの場合,そのまま指定可能なcolorschemeがすんごい数あるので以下のように書くだけで設定できました.
config.color_scheme = "Tokyo Night Storm"
参考
指定可能なcolorschemeのlist: https://wezfurlong.org/wezterm/colorschemes/index.html
keybinding
defaultのkeybindingはwezterm show-keys --lua
で確認することができます.
ひとまずこちらを眺めて何がdefaultで設定されているのか眺めるのも良いかもしれません.
また,defaultのkeybindingは https://wezfurlong.org/wezterm/config/default-keys.html で確認可能です.
default keybindingの無効化
まず始めにdefaultのkeybindingを以下のように設定して無効にします.
無効にしたくなかったらしなくても良いです.
無効にするとkeybinding全部自分で考えないといけなくなります.
defaultのkeybindingを確認した方はお分かりと思いますがCTRL
+SHIFT
のprefixが多用されています.これがNeovimとkeybindingと競合したため私は無効にしました.
config.disable_default_key_bindings = true
基本書式
以下のようにkey
, mods
, action
を指定したentryをkeys
に突っ込んでいきます.
読み方は⌘などの修飾key(mods
)+非修飾key(key
)でaction
が実行される,です.
最初のlocal act = wezterm.action
はaliasなのでやってもやらなくても良いです.
使わない場合以下に出てくるact
はwezterm.action
に読み替えてください.
local act = wezterm.action
config.keys = {
{ key = "c", mods = "CMD", action = act.CopyTo("Clipboard") },
-- 他のkeybinding
}
- macOSでよく用いる修飾keyと
mods
の記法の対応は以下の通りになります
key | 記法 |
---|---|
⇧ | SHIFT |
⌘ | CMD |
⌥ | OPT |
⌃ | CTRL |
-
mods
は|
を用いてCMD|SHIFT
のように複数の修飾keyの組合せが可能です.この例の場合⌘+⇧+key
になります.ORではありません.
参考
action
に指定可能なもの一覧: https://wezfurlong.org/wezterm/config/lua/keyassignment/index.html
以下では私が使っているkeybindingを展開します.
コピペ
- ⌘+cでcopy
- ⌘+vでpaste
{ key = "c", mods = "CMD", action = act.CopyTo("Clipboard") },
{ key = "v", mods = "CMD", action = act.PasteFrom("Clipboard") },
注意点としては,action
にはact.Copy
と act.Paste
があるようですが非推奨のようです.
pane分割
- ⌘+dで水平分割(paneを横に分割,左右に分かれる)
- ⌘+⇧+dで垂直分割(画面を縦に分割,上下に分かれる)
余談ですがNeovimの:split
/:vsplit
と分割が逆で混乱しました.
{ key = "d", mods = "CMD", action = act.SplitHorizontal({}) },
{ key = "d", mods = "SHIFT|CMD", action = act.SplitVertical({}) },
tab作成
- ⌘+tで新しいtabをhome directoryで開く
- ⌘+⇧+tで新しいtabを今使っているdirectoryで開く
{ key = "t", mods = "CMD", action = act.SpawnCommandInNewTab({ cwd = wezterm.home_dir }) },
{ key = "t", mods = "SHIFT|CMD", action = act.SpawnTab("CurrentPaneDomain") },
defaultでは開くdirectoryは今使っているものだったのでcwd = wezterm.home_dir
でhome directoryを開くように指定しています.
WezTermではhome directoryを~
とか$HOME
とかで指定できない代わりにwezterm.home_dir
を使用します.
window作成
- ⌘+nで新しいwindowをhome directoryを開く
- ⌘+⇧+nで新しいwindowを現在使っているdirectoryで開く
{ key = "n", mods = "CMD", action = act.SpawnCommandInNewWindow({ cwd = wezterm.home_dir }) },
{ key = "n", mods = "SHIFT|CMD", action = act.SpawnWindow },
paneを閉じる
⌘+wでpaneを閉じる
{ key = "w", mods = "CMD", action = act.CloseCurrentPane({ confirm = false }) },
tab,windowも最後のpane,tabならこれで閉じられるので閉じるのにはこれしか使っていません.
confirm = true
にすると閉じる前に確認してくれます.
追加予定?
私の行なっているkeybindingの設定は以上になります.
必要最低限という感じで,他にも設定可能なactionはたくさんありますし,pane/tab/window移動のkeybindingとかは設定した方が良い気がしますが私はあまり使ってないので設定していません.今後必要になったら設定するかもしれません.
option keyの有効化
option key (⌥)はdefaultではAlt keyとして解釈されています.
以下の設定を行うことで,option keyをそのまま解釈させるようにします.
umlautを入力するmacOSのkeybinding ⌥+uと競合したため設定しました.
config.send_composed_key_when_left_alt_is_pressed = true
config.send_composed_key_when_right_alt_is_pressed = true
TODO
- status barの設定
- tab iconの設定可否
-
semantic historyの設定可否
- OpenLinkAtMouseCursor
- open_with
- Configuring Mouse Assignments
- defaultでURLは左clickでopen linkになっているがfile pathの場合は自分で設定しないとダメっぽい
⌥+uでumlautが入力できなくて苦戦していましたが,英字用のIMEとして日本語-ローマ字の英字モードを使っていたのが良くなかったっぽいです.英字入力のIMEをABC
にしたら入力できるようになりました.