Configuration du terminal
Pi utilise le Kitty keyboard protocol pour une détection fiable des touches de modification. La plupart des terminaux modernes prennent en charge ce protocole, mais certains nécessitent une configuration.
Chaton, iTerm2
Travaillez hors des sentiers battus.
Terminal Apple
Pi permet des rapports clés améliorés lorsqu'ils sont disponibles. Si Terminal.app envoie toujours un retour simple pour Shift+Enter, pi utilise un modificateur macOS local de secours pour traiter ce retour comme Shift+Enter.
Cette solution de secours ne fonctionne que lorsque pi s'exécute sur le même Mac que Terminal.app. Il ne peut pas détecter le clavier local sur le SSH distant.
Fantôme
Ajoutez à votre configuration Ghostty (~/Library/Application Support/com.mitchellh.ghostty/config sur macOS, ~/.config/ghostty/config sur Linux):
keybind = alt+backspace=text:\x1b\x7fLes anciennes versions de Claude Code peuvent avoir ajouté ce mappage Ghostty:
keybind = shift+enter=text:\nCe mappage envoie un octet de saut de ligne brut. À l'intérieur de pi, cela ne se distingue pas de Ctrl+J, donc tmux et pi ne voient plus un véritable événement clé shift+enter.
Si Claude Code 2.x ou plus récent est la seule raison pour laquelle vous avez ajouté ce mappage, vous pouvez le supprimer, sauf si vous souhaitez utiliser Claude Code dans tmux, où il nécessite toujours ce mappage Ghostty.
Pi lie Ctrl+J comme alias de nouvelle ligne par défaut, donc Shift+Enter continue de fonctionner dans tmux via ce remappage sans configuration pi supplémentaire.
WezTerm
WezTerm fonctionne généralement immédiatement pour Shift+Enter via xterm modifierOtherKeys. Pour utiliser explicitement le protocole du clavier Kitty, créez ~/.wezterm.lua:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.enable_kitty_keyboard = true
return configSur macOS, WezTerm lie Option+Enter au plein écran par défaut. Pour utiliser Option+Enter pour la file d'attente de suivi pi, ajoutez ce remplacement de clé:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.keys = {
{
key = 'Enter',
mods = 'ALT',
action = wezterm.action.SendString('\x1b[13;3u'),
},
}
return configSi vous disposez déjà d'une table config.keys, ajoutez-y l'entrée.
Sur WSL, WezTerm peut nécessiter un curseur matériel visible pour le positionnement de la fenêtre candidate IME. Si les candidats CJK IME ne suivent pas le curseur de texte, définissez PI_HARDWARE_CURSOR=1 avant d'exécuter pi ou définissez showHardwareCursor sur true dans les paramètres.
Empressement
Alacritty fonctionne généralement immédiatement pour Shift+Enter. Sur macOS, Option+Enter peut apparaître sous la forme simple Enter. Pour utiliser Option+Enter pour la file d'attente de suivi pi, ajoutez à ~/.config/alacritty/alacritty.toml:
[[keyboard.bindings]]
key = "Enter"
mods = "Alt"
chars = "\u001b[13;3u"Redémarrez Alacritty après avoir modifié la configuration.
VS Code (terminal intégré)
VS Code 1.109.5 et les versions plus récentes activent par défaut le protocole de clavier Kitty dans le terminal intégré, donc Shift+Enter devrait fonctionner immédiatement.
Les versions de VS Code antérieures à 1.109.5 nécessitent une liaison de touche de terminal explicite pour Shift+Enter.
keybindings.json emplacements:
- macOS:
~/Library/Application Support/Code/User/keybindings.json - Linux:
~/.config/Code/User/keybindings.json - Windows:
%APPDATA%\\Code\\User\\keybindings.json
Ajouter à keybindings.json:
{
"key": "shift+enter",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001b[13;2u" },
"when": "terminalFocus"
}Terminal Windows
Ajoutez à settings.json (Ctrl+Shift+ ou Paramètres → Ouvrir le fichier JSON) pour transférer les touches Entrée modifiées que pi utilise:
{
"actions": [
{
"command": { "action": "sendInput", "input": "\u001b[13;2u" },
"keys": "shift+enter"
},
{
"command": { "action": "sendInput", "input": "\u001b[13;3u" },
"keys": "alt+enter"
}
]
}Shift+Enterinsère une nouvelle ligne.- Le terminal Windows lie
Alt+Enterau plein écran par défaut. Cela empêche pi de recevoirAlt+Enterpour la file d'attente de suivi. - Le remappage de
Alt+EnterensendInputtransmet le véritable accord clé à pi à la place.
Si vous disposez déjà d'un tableau actions, ajoutez-y les objets. Si l'ancien comportement en plein écran persiste, fermez complètement et rouvrez le terminal Windows.
xfce4-terminal, terminateur
Ces terminaux ont une prise en charge limitée des séquences d'échappement. Les touches Entrée modifiées comme Ctrl+Enter et Shift+Enter ne peuvent pas être distinguées du simple Enter, empêchant les raccourcis clavier personnalisés tels que submit: ["ctrl+enter"] de fonctionner.
Pour une expérience optimale, utilisez un terminal prenant en charge le protocole du clavier Kitty:
- Kitty
- Ghostty
- WezTerm
- iTerm2
- Alacritty (nécessite une compilation avec la prise en charge du protocole Kitty)
IntelliJ IDEA (terminal intégré)
Le terminal intégré a une prise en charge limitée des séquences d'échappement. Shift+Enter ne peut pas être distingué de Enter dans le terminal d'IntelliJ.
Si vous souhaitez que le curseur matériel soit visible, définissez PI_HARDWARE_CURSOR=1 avant d'exécuter pi (désactivé par défaut pour des raisons de compatibilité).
Pensez à utiliser un émulateur de terminal dédié pour la meilleure expérience.