local wezterm = require("wezterm")
local act = wezterm.action
local M = {}
M.keys = {
-- タブ操作
{ key = "t", mods = "CTRL|SHIFT", action = act.SpawnTab("CurrentPaneDomain") },
{ key = "w", mods = "CTRL|SHIFT", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "{", mods = "CTRL|SHIFT", action = act.ActivateTabRelative(-1) },
{ key = "z", mods = "ALT", action = act.ActivateTabRelative(-1) },
{ key = "}", mods = "CTRL|SHIFT", action = act.ActivateTabRelative(1) },
{ key = "c", mods = "ALT", action = act.ActivateTabRelative(1) },
{ key = "v", mods = "ALT", action = act.SendKey({ key = "u", mods = "CTRL" }) },
-- タブ複製 (Leader + d): カレントディレクトリを引き継いで新ウィンドウを開く
{
key = "d",
mods = "LEADER",
action = wezterm.action_callback(function(window, pane)
local cwd = pane:get_current_working_dir()
wezterm.mux.spawn_window({ cwd = cwd and cwd.file_path or nil })
end),
},
-- ペイン操作 (リーダーキー: Ctrl+q)
{ key = "-", mods = "LEADER", action = act.SplitVertical({ domain = "CurrentPaneDomain" }) },
{ key = "|", mods = "LEADER|SHIFT", action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
{ key = "h", mods = "LEADER", action = act.ActivatePaneDirection("Left") },
{ key = "j", mods = "LEADER", action = act.ActivatePaneDirection("Down") },
{ key = "k", mods = "LEADER", action = act.ActivatePaneDirection("Up") },
{ key = "l", mods = "LEADER", action = act.ActivatePaneDirection("Right") },
{ key = "x", mods = "LEADER", action = act.CloseCurrentPane({ confirm = true }) },
{ key = "[", mods = "LEADER", action = act.ActivateCopyMode },
-- タブ名リネーム (Leader + r)
{
key = "r",
mods = "LEADER",
action = act.PromptInputLine({
description = "Tab name:",
action = wezterm.action_callback(function(window, pane, line)
if line and #line > 0 then
window:active_tab():set_title(line)
end
end),
}),
},
-- コピー/ペースト
{ key = "c", mods = "CTRL|SHIFT", action = act.CopyTo("Clipboard") },
{ key = "v", mods = "CTRL|SHIFT", action = act.PasteFrom("Clipboard") },
-- フォントサイズ
{ key = "=", mods = "CTRL|SHIFT", action = act.IncreaseFontSize },
{ key = "-", mods = "CTRL", action = act.DecreaseFontSize },
{ key = "0", mods = "CTRL", action = act.ResetFontSize },
-- スクロール操作 (ALT+矢印: CTRL+SHIFT+矢印はペインリサイズと競合するため)
{ key = "UpArrow", mods = "ALT", action = act.ScrollByLine(-3) },
{ key = "DownArrow", mods = "ALT", action = act.ScrollByLine(3) },
-- ウィンドウ操作
{ key = "n", mods = "CTRL|SHIFT", action = act.SpawnWindow },
-- その他
{ key = "Enter", mods = "ALT", action = act.ToggleFullScreen },
{ key = "r", mods = "CTRL|SHIFT", action = act.ReloadConfiguration },
-- ファイラー (Cursorライク)
-- Ctrl+Shift+E: 左ペインにyaziを開く
{
key = "e",
mods = "CTRL|SHIFT",
action = act.SplitPane({
direction = "Left",
size = { Percent = 30 },
command = { args = { "yazi" } },
}),
},
-- Ctrl+Shift+B: 現在のペインを閉じる(トグル代わり)
{ key = "b", mods = "CTRL|SHIFT", action = act.CloseCurrentPane({ confirm = false }) },
-- Claude Code送信用: Ctrl+X / Option+X → Enter変換
{ key = "x", mods = "CTRL", action = act.SendKey({ key = "Enter" }) },
{ key = "x", mods = "ALT", action = act.SendKey({ key = "Enter" }) },
-- ペインリサイズ (Ctrl+Shift+矢印)
{ key = "LeftArrow", mods = "CTRL|SHIFT", action = act.AdjustPaneSize({ "Left", 5 }) },
{ key = "RightArrow", mods = "CTRL|SHIFT", action = act.AdjustPaneSize({ "Right", 5 }) },
{ key = "UpArrow", mods = "CTRL|SHIFT", action = act.AdjustPaneSize({ "Up", 3 }) },
{ key = "DownArrow", mods = "CTRL|SHIFT", action = act.AdjustPaneSize({ "Down", 3 }) },
}
M.key_tables = {}
return M
WezTermキーバインド設定 keybinds.lua(リーダーキー+ペイン/タブ操作)
元ファイル: れん君パート/keybinds.lua
要約
WezTermのキーバインド定義Luaファイル。タブ操作(生成/閉じる/切替)、Ctrl+qをリーダーキーにしたペインの分割・方向移動・クローズ、Leader+dでカレントディレクトリを引き継いだ新ウィンドウ生成、Leader+rでのタブ名リネーム、コピー/ペースト、フォントサイズ、ALT+矢印スクロールなどを設定。tmux風のキー体系をWezTerm上に再現している。
要点
- リーダーキーをCtrl+qに設定したtmux風のペイン操作体系
- ペイン分割(-/|)・方向移動(hjkl)・クローズ(x)
- Leader+d:カレントディレクトリ継承で新ウィンドウを生成
- Leader+r:プロンプト入力でタブ名をリネーム
- コピー/ペースト・フォントサイズ・ALT+矢印スクロール等の基本割当