Вопрос или проблема
Я на macOS, и моё приложение терминала по умолчанию – WezTerm (20240203-110809-5046fc22 установлено).
Есть ли сочетание клавиш для горизонтального/вертикального разделения при правом клике, чтобы мне не приходилось обращаться к меню?
В iTerm это можно сделать легко, вот так:
Вы пробовали?
ctrl-shift-option-%
ctrl-shift-option-"
Источник: https://github.com/wez/wezterm/discussions/5248#discussioncomment-8975849
WezTerm не имеет концепции контекстных меню, особенно на стороне API.
Вы можете смоделировать меню, используя действие InputSelector:
config.mouse_bindings = {
{
event = { Down = { streak = 1, button = 'Right' } },
mods="NONE",
action = wezterm.action.InputSelector {
title="Выберите действие:",
choices = {
{
id = 'splitHorizontal',
label="Разделить вкладку по горизонтали"
},
{
id = 'splitVertical',
label="Разделить вкладку по вертикали"
},
},
action = wezterm.action_callback(function(window, pane, id, label)
if not id then
wezterm.log_info 'Ничего не выбрано'
elseif id == 'splitHorizontal' then
window:perform_action(wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, pane)
else
end
end),
},
},
}
Или вы можете просто назначить действия SplitHorizontal и SplitVertical на выбранные клавиши напрямую.
Ответ или решение
Чтобы включить возможность горизонтального и вертикального разделения во WezTerm, вам нужно настроить соответствующие сочетания клавиш или добавить функциональность через контекстное меню с помощью скриптов Lua. Ниже приведен подробный процесс, который объясняет, как это сделать.
Установка сочетаний клавиш для разделения окон
WezTerm поддерживает настраиваемые сочетания клавиш, чтобы вы могли быстро разделять окна на горизонтальные и вертикальные панели. На данный момент вы можете использовать следующие сочетания клавиш по умолчанию:
- Горизонтальное разделение:
Ctrl + Shift + Option + %
- Вертикальное разделение:
Ctrl + Shift + Option + "
Однако, если вам нужно что-то более интуитивно понятное или быстрое, вы можете настроить свои собственные сочетания клавиш в конфигурационном файле Lua.
Шаги для настройки сочетаний клавиш
-
Откройте файл конфигурации WezTerm. Обычно он находится по пути
~/.config/wezterm/wezterm.lua
. Если файла нет, создайте его. -
Вставьте следующий Lua-код для назначения новых сочетаний клавиш:
local wezterm = require 'wezterm'
return {
keys = {
{key="H", mods="CTRL|SHIFT", action=wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }},
{key="V", mods="CTRL|SHIFT", action=wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }},
},
}
В этом примере сочетания клавиш Ctrl + Shift + H
будут использоваться для горизонтального разделения, а Ctrl + Shift + V
для вертикального.
Использование правого клика для открытия контекстного меню
WezTerm не поддерживает контекстные меню по умолчанию, однако вы можете имитировать это с помощью InputSelector
. Это позволит вам выбрать действие из меню при правом клике.
- Добавьте следующее в ваш файл конфигурации после вышеуказанных сочетаний клавиш:
config.mouse_bindings = {
{
event = { Down = { streak = 1, button = 'Right' } },
mods="NONE",
action = wezterm.action.InputSelector {
title="Выберите действие:",
choices = {
{
id = 'splitHorizontal',
label="Разделить вкладку горизонтально"
},
{
id = 'splitVertical',
label="Разделить вкладку вертикально"
},
},
action = wezterm.action_callback(function(window, pane, id, label)
if not id then
wezterm.log_info 'Ничего не выбрано'
elseif id == 'splitHorizontal' then
window:perform_action(wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, pane)
elseif id == 'splitVertical' then
window:perform_action(wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }, pane)
end
end),
},
},
}
С этим кодом, когда вы щелкните правой кнопкой мыши, появится меню, позволяющее вам выбрать между горизонтальным и вертикальным разделением окон.
Заключение
Теперь вы настроили WezTerm для удобного горизонтального и вертикального разделения окон. Используя сочетания клавиш или контекстное меню, вы сможете эффективно организовать ваше рабочее пространство в терминале. Попробуйте разные конфигурации и найдите те, которые лучше всего отвечают вашим потребностям!