Terminal-Setup
Pi verwendet Kitty keyboard protocol zur zuverlässigen Erkennung von Zusatztasten. Die meisten modernen Terminals unterstützen dieses Protokoll, einige erfordern jedoch eine Konfiguration.
Kitty, iTerm2
Arbeiten Sie out of the box.
Apple-Terminal
Pi ermöglicht erweiterte Schlüsselberichte, sofern verfügbar. Wenn Terminal.app immer noch eine einfache Rückgabe für Shift+Enter sendet, verwendet pi einen lokalen macOS-Modifikator-Fallback, um diese Rückgabe als Shift+Enter zu behandeln.
Dieser Fallback funktioniert nur, wenn pi auf demselben Mac wie Terminal.app läuft. Die lokale Tastatur kann über Remote SSH nicht erkannt werden.
Geisterhaft
Fügen Sie Ihrer Ghostty-Konfiguration hinzu (~/Library/Application Support/com.mitchellh.ghostty/config unter macOS, ~/.config/ghostty/config unter Linux):
keybind = alt+backspace=text:\x1b\x7fÄltere Claude Code-Versionen haben möglicherweise diese Ghostty-Zuordnung hinzugefügt:
keybind = shift+enter=text:\nDiese Zuordnung sendet ein rohes Linefeed-Byte. Innerhalb von Pi ist das nicht von Ctrl+J zu unterscheiden, daher sehen tmux und Pi kein echtes shift+enter-Schlüsselereignis mehr.
Wenn Claude Code 2.x oder neuer der einzige Grund ist, warum Sie diese Zuordnung hinzugefügt haben, können Sie sie entfernen, es sei denn, Sie möchten Claude Code in tmux verwenden, wo diese Ghostty-Zuordnung weiterhin erforderlich ist.
Pi bindet Ctrl+J als Standard-Neuzeilen-Alias, sodass Shift+Enter über diese Neuzuordnung ohne zusätzliche Pi-Konfiguration weiterhin in tmux funktioniert.
WezTerm
WezTerm funktioniert normalerweise sofort für Shift+Enter über xterm changesOtherKeys. Um das Kitty-Tastaturprotokoll explizit zu verwenden, erstellen Sie ~/.wezterm.lua:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.enable_kitty_keyboard = true
return configUnter macOS bindet WezTerm Option+Enter standardmäßig an den Vollbildmodus. Um Option+Enter für die Pi-Folgewarteschlange zu verwenden, fügen Sie diese Schlüsselüberschreibung hinzu:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.keys = {
{
key = 'Enter',
mods = 'ALT',
action = wezterm.action.SendString('\x1b[13;3u'),
},
}
return configWenn Sie bereits über eine config.keys-Tabelle verfügen, fügen Sie den Eintrag hinzu.
Unter WSL erfordert WezTerm möglicherweise einen sichtbaren Hardware-Cursor für die Positionierung des IME-Kandidatenfensters. Wenn CJK-IME-Kandidaten dem Textcursor nicht folgen, legen Sie PI_HARDWARE_CURSOR=1 fest, bevor Sie pi ausführen, oder setzen Sie showHardwareCursor in den Einstellungen auf true.
Alacritty
Alacritty funktioniert normalerweise sofort für Shift+Enter. Unter macOS erscheint Option+Enter möglicherweise als einfaches Enter. Um Option+Enter für die Pi-Folgewarteschlange zu verwenden, fügen Sie ~/.config/alacritty/alacritty.toml hinzu:
[[keyboard.bindings]]
key = "Enter"
mods = "Alt"
chars = "\u001b[13;3u"Starten Sie Alacritty neu, nachdem Sie die Konfiguration geändert haben.
VS-Code (Integriertes Terminal)
VS Code 1.109.5 und höher aktivieren standardmäßig das Kitty-Tastaturprotokoll im integrierten Terminal, sodass Shift+Enter sofort funktionieren sollte.
VS-Code-Versionen vor 1.109.5 benötigen eine explizite Terminal-Tastenkombination für Shift+Enter.
keybindings.json Standorte:
- macOS:
~/Library/Application Support/Code/User/keybindings.json - Linux:
~/.config/Code/User/keybindings.json - Windows:
%APPDATA%\\Code\\User\\keybindings.json
Zu keybindings.json hinzufügen:
{
"key": "shift+enter",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001b[13;2u" },
"when": "terminalFocus"
}Windows-Terminal
Zu settings.json hinzufügen (Strg+Umschalt+ oder Einstellungen → JSON-Datei öffnen), um die geänderten Eingabetasten weiterzuleiten, die pi verwendet:
{
"actions": [
{
"command": { "action": "sendInput", "input": "\u001b[13;2u" },
"keys": "shift+enter"
},
{
"command": { "action": "sendInput", "input": "\u001b[13;3u" },
"keys": "alt+enter"
}
]
}Shift+Enterfügt eine neue Zeile ein.- Windows Terminal bindet
Alt+Enterstandardmäßig an den Vollbildmodus. Dadurch wird verhindert, dass piAlt+Enterfür die Folgewarteschlange empfängt. - Durch die Neuzuordnung von
Alt+EnterzusendInputwird der echte Schlüsselakkord stattdessen an Pi weitergeleitet.
Wenn Sie bereits über ein actions-Array verfügen, fügen Sie die Objekte hinzu. Wenn das alte Vollbildverhalten weiterhin besteht, schließen Sie Windows Terminal vollständig und öffnen Sie es erneut.
xfce4-Terminal, Terminator
Diese Terminals bieten nur begrenzte Unterstützung für Escape-Sequenzen. Geänderte Eingabetasten wie Ctrl+Enter und Shift+Enter können nicht von der einfachen Enter unterschieden werden, sodass benutzerdefinierte Tastenkombinationen wie submit: ["ctrl+enter"] nicht funktionieren.
Für das beste Erlebnis verwenden Sie ein Terminal, das das Kitty-Tastaturprotokoll unterstützt:
IntelliJ IDEA (Integriertes Terminal)
Das integrierte Terminal bietet nur begrenzte Unterstützung für Escape-Sequenzen. Umschalt+Eingabetaste kann im IntelliJ-Terminal nicht von Eingabetaste unterschieden werden.
Wenn Sie möchten, dass der Hardware-Cursor sichtbar ist, stellen Sie PI_HARDWARE_CURSOR=1 ein, bevor Sie pi ausführen (aus Kompatibilitätsgründen standardmäßig deaktiviert).
Erwägen Sie die Verwendung eines dedizierten Terminalemulators, um das beste Erlebnis zu erzielen.