Raccourcis clavier
Tous les raccourcis clavier peuvent être personnalisés via ~/.pi/agent/keybindings.json. Chaque action peut être liée à une ou plusieurs touches.
Le fichier de configuration utilise les mêmes identifiants de liaison de touches avec espace de noms que pi utilise en interne et que les auteurs d'extensions utilisent dans les gestionnaires keyHint() et keybindings injectés.
Les configurations plus anciennes utilisant des identifiants pré-espaces de noms tels que cursorUp ou expandTools sont automatiquement migrées vers les identifiants avec espace de noms au démarrage.
Après avoir modifié keybindings.json, exécutez /reload dans pi pour appliquer les modifications sans redémarrer la session.
Format de clé
modifier+key où les modificateurs sont ctrl, shift, alt, super (combinables) et les clés sont:
- Lettres:
a-z - Chiffres:
0-9 - Touches spéciales:
escape,esc,enter,return,tab,space,backspace,delete,insert,clear,home,end,pageUp,pageDown,up,down,left,right - Touches de fonction:
f1-f12 - Symboles:
`,-,=,[,],\,;,',,,.,/,!,@,#,$,%,^,&,*,(,),_,+,|,~,{,},:,<,>,?
Combinaisons de modificateurs: ctrl+shift+x, alt+ctrl+x, ctrl+shift+alt+x, super+k, ctrl+super+k, ctrl+1, etc.
Les liaisons super nécessitent un terminal qui signale le modificateur séparément, généralement via le protocole du clavier Kitty. Ils pourraient ne pas fonctionner dans les terminaux sans ce support.
Toutes les actions
TUI Mouvement du curseur de l'éditeur
| ID de liaison de clé | Défaut | Description |
|---|---|---|
tui.editor.cursorUp |
up |
Déplacez le curseur vers le haut et parcourez l'historique plus ancien en haut |
tui.editor.cursorDown |
down |
Déplacez le curseur vers le bas et parcourez l'historique le plus récent en bas. |
tui.editor.historyPrevious |
(aucun) | Sélectionnez l'entrée précédente de l'historique des invites |
tui.editor.historyNext |
(aucun) | Sélectionnez la prochaine entrée de l'historique des invites |
tui.editor.cursorLeft |
left, ctrl+b |
Déplacer le curseur vers la gauche |
tui.editor.cursorRight |
right, ctrl+f |
Déplacer le curseur vers la droite |
tui.editor.cursorWordLeft |
alt+left, ctrl+left, alt+b |
Déplacer le mot curseur vers la gauche |
tui.editor.cursorWordRight |
alt+right, ctrl+right, alt+f |
Déplacer le mot curseur vers la droite |
tui.editor.cursorLineStart |
home, ctrl+home, ctrl+a |
Passer au début de la ligne |
tui.editor.cursorLineEnd |
end, ctrl+end, ctrl+e |
Passer à la fin de la ligne |
tui.editor.jumpForward |
ctrl+] |
Avancer vers le personnage |
tui.editor.jumpBackward |
ctrl+alt+] |
Revenir en arrière jusqu'au personnage |
tui.editor.pageUp |
pageUp, ctrl+pageUp |
Faire défiler la page vers le haut |
tui.editor.pageDown |
pageDown, ctrl+pageDown |
Faites défiler par page |
Les actions d'historique dédiées modifient toujours les entrées de l'historique, quelle que soit la position du curseur dans une invite multiligne. Les liaisons d'historique explicites ont priorité sur les actions de l'application lorsque l'éditeur principal est ciblé, donc la liaison de tui.editor.historyPrevious à ctrl+p remplace le cycle de modèle dans ce contexte sans modifier Ctrl+P dans les sélecteurs.
TUI Suppression de l'éditeur
| ID de liaison de clé | Défaut | Description |
|---|---|---|
tui.editor.deleteCharBackward |
backspace |
Supprimer un caractère vers l'arrière |
tui.editor.deleteCharForward |
delete, ctrl+d |
Supprimer le caractère vers l'avant |
tui.editor.deleteWordBackward |
ctrl+w, alt+backspace |
Supprimer le mot à l'envers |
tui.editor.deleteWordForward |
alt+d, alt+delete |
Supprimer le mot en avant |
tui.editor.deleteToLineStart |
ctrl+u |
Supprimer au début de la ligne |
tui.editor.deleteToLineEnd |
ctrl+k |
Supprimer jusqu'à la fin de la ligne |
TUI Entrée
| ID de liaison de clé | Défaut | Description |
|---|---|---|
tui.input.newLine |
shift+enter, ctrl+j |
Insérer une nouvelle ligne |
tui.input.submit |
enter |
Soumettre la contribution |
tui.input.tab |
tab |
Onglet / saisie semi-automatique |
TUI Tuer l'anneau
| ID de liaison de clé | Défaut | Description |
|---|---|---|
tui.editor.yank |
ctrl+y |
Coller le texte le plus récemment supprimé |
tui.editor.yankPop |
alt+y |
Parcourez le texte supprimé après un coup sec |
tui.editor.undo |
ctrl+- |
Annuler la dernière modification |
TUI Presse-papiers et sélection
| ID de liaison de clé | Défaut | Description |
|---|---|---|
tui.input.copy |
ctrl+c |
Copier la sélection |
tui.select.up |
up |
Déplacer la sélection vers le haut |
tui.select.down |
down |
Déplacer la sélection vers le bas |
tui.select.pageUp |
pageUp |
Page précédente dans la liste |
tui.select.pageDown |
pageDown |
Page suivante dans la liste |
tui.select.confirm |
enter |
Confirmer la sélection |
tui.select.cancel |
escape, ctrl+c |
Annuler la sélection |
TUI Fenêtre plein écran
Ces actions s'appliquent lorsque le mode interactif utilise --tui-mode fullscreen et cible la région de défilement de transcription principale. Le trackpad à deux doigts et la molette de la souris font défiler la région sous le pointeur, en revenant à la transcription sur le dock fixe éditeur/statut/pied de page. Cliquer sur un lien hypertexte OSC 8 l'ouvre dans le gestionnaire par défaut. Faire glisser avec le bouton principal de la souris sélectionne le texte et le copie dans le presse-papiers; en maintenant le bord supérieur ou inférieur de la transcription, vous faites défiler automatiquement le contenu hors écran.
Les liaisons de transcription plein écran ont priorité sur les liaisons de l'éditeur. Les touches de navigation par défaut non modifiées contrôlent donc la transcription en mode plein écran, tandis que leurs variantes ctrl continuent de contrôler l'éditeur. En dehors du mode plein écran, les deux variantes contrôlent l'éditeur.
| Clé | Mode par défaut | Mode plein écran |
|---|---|---|
home, end |
Éditeur | Transcription |
ctrl+home, ctrl+end |
Éditeur | Éditeur |
pageUp, pageDown |
Éditeur | Transcription |
ctrl+pageUp, ctrl+pageDown |
Éditeur | Éditeur |
Ce routage reste configurable via les liaisons d'actions ordinaires. Par exemple, "tui.altScreen.pageUp": "ctrl+pageUp" permet à pageUp de contrôler l'éditeur et à ctrl+pageUp de contrôler la transcription en mode plein écran. Liez tui.altScreen.halfPageUp et tui.altScreen.halfPageDown pour des étapes de transcription plus petites tout en conservant les liaisons pleine page. Le paramètre "tui.altScreen.pageUp": [] désactive entièrement ce raccourci de transcription. Les liaisons utilisateur remplacent les valeurs par défaut pour cette action.
| ID de liaison de clé | Défaut | Description |
|---|---|---|
tui.altScreen.pageUp |
pageUp |
Faites défiler la transcription d'une page vers le haut |
tui.altScreen.pageDown |
pageDown |
Faites défiler la transcription d'une page vers le bas |
tui.altScreen.halfPageUp |
(aucun) | Faites défiler la transcription d'une demi-page vers le haut |
tui.altScreen.halfPageDown |
(aucun) | Faites défiler la transcription d'une demi-page vers le bas |
tui.altScreen.previousPrompt |
ctrl+shift+up |
Passer au message marqué précédent |
tui.altScreen.nextPrompt |
ctrl+shift+down |
Passer au message marqué suivant |
tui.altScreen.top |
home |
Faites défiler jusqu'au début de la transcription |
tui.altScreen.bottom |
end |
Faites défiler jusqu'à la fin de la transcription et suivez la nouvelle sortie |
Application
| ID de liaison de clé | Défaut | Description |
|---|---|---|
app.interrupt |
escape |
Annuler / abandonner |
app.clear |
ctrl+c |
Effacer l'éditeur (premier) / quitter (deuxième) |
app.exit |
ctrl+d |
Quitter (quand l'éditeur est vide) |
app.suspend |
ctrl+z (aucun sous Windows) |
Suspendre en arrière-plan |
app.editor.external |
ctrl+g |
Ouvrir dans un éditeur externe (externalEditor, $VISUAL, $EDITOR, Bloc-notes sous Windows ou nano ailleurs) |
app.clipboard.pasteImage |
ctrl+v (alt+v sous Windows) |
Coller une image ou du texte à partir du presse-papiers |
Séances
| ID de liaison de clé | Défaut | Description |
|---|---|---|
app.session.new |
(aucun) | Démarrer une nouvelle session (/new) |
app.session.tree |
(aucun) | Ouvrez le navigateur session tree (/tree) |
app.session.fork |
(aucun) | Session en cours de fourche (/fork) |
app.session.resume |
(aucun) | Sélecteur de CV de session ouverte (/resume) |
app.session.togglePath |
ctrl+p |
Basculer l'affichage du chemin |
app.session.toggleSort |
ctrl+s |
Basculer le mode de tri |
app.session.toggleNamedFilter |
ctrl+n |
Activer/désactiver le filtre nommé uniquement |
app.session.rename |
ctrl+r |
Renommer la session |
app.session.delete |
ctrl+d |
Supprimer la séance |
app.session.deleteNoninvasive |
ctrl+backspace |
Supprimer la session lorsque la requête est vide |
Models et réflexion
| ID de liaison de clé | Défaut | Description |
|---|---|---|
app.model.select |
ctrl+l |
Ouvrir le sélecteur de modèle |
app.model.cycleForward |
ctrl+p |
Passer au modèle suivant |
app.model.cycleBackward |
shift+ctrl+p |
Passer au modèle précédent |
app.thinking.cycle |
shift+tab |
Niveau de réflexion cyclique |
app.thinking.toggle |
ctrl+t |
Réduire ou développer les blocs de réflexion |
Affichage et file d'attente des messages
| ID de liaison de clé | Défaut | Description |
|---|---|---|
app.tools.expand |
ctrl+o |
Réduire ou développer la sortie de l'outil |
app.message.copy |
ctrl+x |
Copiez le dernier message de l'assistant ou le message sélectionné dans /tree |
app.message.followUp |
alt+enter |
Message de suivi de file d'attente |
app.message.dequeue |
alt+up |
Restaurer les messages en file d'attente dans l'éditeur |
Navigation dans l'arborescence
| ID de liaison de clé | Défaut | Description |
|---|---|---|
app.tree.foldOrUp |
ctrl+left, alt+left |
Pliez le segment de branche actuel ou passez au début du segment précédent |
app.tree.unfoldOrDown |
ctrl+right, alt+right |
Dépliez le segment de branche actuel ou passez au début ou à la fin du segment suivant. |
app.tree.editLabel |
shift+l |
Modifier l'étiquette sur le nœud d'arborescence sélectionné |
app.tree.toggleLabelTimestamp |
shift+t |
Basculer les horodatages des étiquettes dans l'arborescence |
app.tree.filter.default |
ctrl+d |
Définir le filtre d'arborescence sur la vue par défaut |
app.tree.filter.noTools |
ctrl+t |
Activer le filtre d'arborescence qui masque les résultats des outils |
app.tree.filter.userOnly |
ctrl+u |
Basculer le filtre d'arborescence qui affiche uniquement les messages des utilisateurs |
app.tree.filter.labeledOnly |
ctrl+l |
Basculer le filtre d'arborescence qui affiche uniquement les entrées étiquetées |
app.tree.filter.all |
ctrl+a |
Basculer le filtre d'arborescence qui affiche toutes les entrées |
app.tree.filter.cycleForward |
ctrl+o |
Filtrer l'arborescence en avant |
app.tree.filter.cycleBackward |
shift+ctrl+o |
Filtrer l'arborescence en arrière |
Sélecteur de portée Models
Utilisé dans le sélecteur de modèles étendus (ouvert via /scoped-models).
| ID de liaison de clé | Défaut | Description |
|---|---|---|
app.models.save |
ctrl+s |
Enregistrer la sélection actuelle du modèle dans les paramètres |
app.models.enableAll |
ctrl+a |
Activer tous les modèles (ou tous correspondant à la recherche en cours) |
app.models.clearAll |
ctrl+x |
Effacer tous les modèles (ou tous correspondant à la recherche en cours) |
app.models.toggleProvider |
ctrl+p |
Basculer tous les modèles pour le fournisseur actuel |
app.models.reorderUp |
alt+up |
Déplacer le modèle sélectionné vers le haut dans l'ordre du cycle |
app.models.reorderDown |
alt+down |
Déplacer le modèle sélectionné vers le bas dans l'ordre du cycle |
Configuration personnalisée
Créez ~/.pi/agent/keybindings.json:
{
"tui.editor.historyPrevious": "ctrl+p",
"tui.editor.historyNext": "ctrl+n",
"tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}Chaque action peut avoir une seule clé ou un tableau de clés. La configuration utilisateur remplace les valeurs par défaut.
Sous Windows natif, app.suspend n'a pas de liaison par défaut car les terminaux Windows ne prennent pas en charge le contrôle des tâches Unix. Si vous le liez manuellement, pi affiche un message d'état au lieu de le suspendre. Dans WSL, le comportement normal de Linux ctrl+z/fg s'applique toujours.
Exemple Emacs
{
"tui.editor.historyPrevious": "ctrl+p",
"tui.editor.historyNext": "ctrl+n",
"tui.editor.cursorLeft": ["left", "ctrl+b"],
"tui.editor.cursorRight": ["right", "ctrl+f"],
"tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
"tui.editor.cursorWordRight": ["alt+right", "alt+f"],
"tui.editor.deleteCharForward": ["delete", "ctrl+d"],
"tui.editor.deleteCharBackward": ["backspace", "ctrl+h"],
"tui.input.newLine": ["shift+enter", "ctrl+j"]
}Exemple Vim
{
"tui.editor.cursorUp": ["up", "alt+k"],
"tui.editor.cursorDown": ["down", "alt+j"],
"tui.editor.cursorLeft": ["left", "alt+h"],
"tui.editor.cursorRight": ["right", "alt+l"],
"tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
"tui.editor.cursorWordRight": ["alt+right", "alt+w"]
}