Настройка терминала
Pi использует Kitty keyboard protocol для надежного обнаружения ключа-модификатора. Большинство современных терминалов поддерживают этот протокол, но некоторые требуют настройки.
Китти, iTerm2
Работайте нестандартно.
Apple Терминал
Pi включает расширенные ключевые отчеты, если они доступны. Если Terminal.app по-прежнему отправляет простой возврат для Shift+Enter, pi использует резервный локальный модификатор macOS, чтобы рассматривать этот возврат как Shift+Enter.
Этот запасной вариант работает только тогда, когда pi работает на том же Mac, что и Terminal.app. Он не может обнаружить локальную клавиатуру через удаленный SSH.
Призрачный
Добавьте в свою конфигурацию Ghostty (~/Library/Application Support/com.mitchellh.ghostty/config в macOS, ~/.config/ghostty/config в Linux):
keybind = alt+backspace=text:\x1b\x7fВ более старых версиях Claude Code могло быть добавлено это сопоставление Ghostty:
keybind = shift+enter=text:\nЭто сопоставление отправляет необработанный байт перевода строки. Внутри pi это неотличимо от Ctrl+J, поэтому tmux и pi больше не видят реального ключевого события shift+enter.
Если Claude Code 2.x или новее является единственной причиной, по которой вы добавили это сопоставление, вы можете удалить его, если только вы не хотите использовать Claude Code в tmux, где оно все еще требует этого сопоставления Ghostty.
Pi связывает Ctrl+J как псевдоним новой строки по умолчанию, поэтому Shift+Enter продолжает работать в tmux через это переназначение без дополнительной настройки pi.
ВезТерм
WezTerm обычно работает «из коробки» для Shift+Enter через xterm ModifyOtherKeys. Чтобы явно использовать протокол клавиатуры Kitty, создайте ~/.wezterm.lua:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.enable_kitty_keyboard = true
return configВ macOS WezTerm по умолчанию привязывает Option+Enter к полноэкранному режиму. Чтобы использовать Option+Enter для постановки в очередь отслеживания pi, добавьте переопределение этого ключа:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.keys = {
{
key = 'Enter',
mods = 'ALT',
action = wezterm.action.SendString('\x1b[13;3u'),
},
}
return configЕсли у вас уже есть таблица config.keys, добавьте в нее запись.
В WSL WezTerm может потребоваться видимый аппаратный курсор для позиционирования окна-кандидата IME. Если кандидаты CJK IME не следуют за текстовым курсором, установите PI_HARDWARE_CURSOR=1 перед запуском pi или установите от showHardwareCursor до true в настройках.
рвение
Alacritty обычно работает «из коробки» для Shift+Enter. В macOS Option+Enter может отображаться как обычный Enter. Чтобы использовать Option+Enter для последующей очереди Pi, добавьте к ~/.config/alacritty/alacritty.toml:
[[keyboard.bindings]]
key = "Enter"
mods = "Alt"
chars = "\u001b[13;3u"Перезапустите Alacritty после изменения конфигурации.
VS Code (интегрированный терминал)
VS Code 1.109.5 и новее по умолчанию включают протокол клавиатуры Kitty во встроенном терминале, поэтому Shift+Enter должно работать «из коробки».
Версии VS Code старше 1.109.5 требуют явного назначения клавиш терминала для Shift+Enter.
keybindings.json локации:
- macOS:
~/Library/Application Support/Code/User/keybindings.json - Линукс:
~/.config/Code/User/keybindings.json - Окна:
%APPDATA%\\Code\\User\\keybindings.json
Добавьте к keybindings.json:
{
"key": "shift+enter",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001b[13;2u" },
"when": "terminalFocus"
}Терминал Windows
Добавьте в settings.json (Ctrl+Shift+ или Настройки → Открыть файл JSON), чтобы перенаправить измененные клавиши Enter, которые использует pi:
{
"actions": [
{
"command": { "action": "sendInput", "input": "\u001b[13;2u" },
"keys": "shift+enter"
},
{
"command": { "action": "sendInput", "input": "\u001b[13;3u" },
"keys": "alt+enter"
}
]
}Shift+Enterвставляет новую строку.- Терминал Windows по умолчанию привязывает
Alt+Enterк полноэкранному режиму. Это не позволяет pi получитьAlt+Enterдля последующей постановки в очередь. - Переназначение
Alt+EnterнаsendInputвместо этого перенаправляет настоящий ключевой аккорд на число «пи».
Если у вас уже есть массив actions, добавьте в него объекты. Если старое полноэкранное поведение сохраняется, полностью закройте и снова откройте терминал Windows.
xfce4-терминал, терминатор
Эти терминалы имеют ограниченную поддержку escape-последовательностей. Модифицированные клавиши Enter, такие как Ctrl+Enter и Shift+Enter, невозможно отличить от простых Enter, что не позволяет работать пользовательским сочетаниям клавиш, таким как submit: ["ctrl+enter"].
Для получения наилучших результатов используйте терминал, поддерживающий протокол клавиатуры Kitty:
IntelliJ IDEA (интегрированный терминал)
Встроенный терминал имеет ограниченную поддержку escape-последовательностей. Shift+Enter нельзя отличить от Enter в терминале IntelliJ.
Если вы хотите, чтобы аппаратный курсор был виден, установите PI_HARDWARE_CURSOR=1 перед запуском pi (по умолчанию отключено для совместимости).
Для получения наилучших результатов рассмотрите возможность использования специального эмулятора терминала.