Aller au contenu

Keybinds

Personnalisez vos raccourcis clavier.

OpenCode a une liste de raccourcis clavier que vous pouvez personnaliser via la configuration OpenCode.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"keybinds": {
"leader": "ctrl+x",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
"editor_open": "<leader>e",
"theme_list": "<leader>t",
"sidebar_toggle": "<leader>b",
"scrollbar_toggle": "none",
"username_toggle": "none",
"status_view": "<leader>s",
"tool_details": "none",
"session_export": "<leader>x",
"session_new": "<leader>n",
"session_list": "<leader>l",
"session_timeline": "<leader>g",
"session_fork": "none",
"session_rename": "none",
"session_share": "none",
"session_unshare": "none",
"session_interrupt": "escape",
"session_compact": "<leader>c",
"session_child_cycle": "<leader>right",
"session_child_cycle_reverse": "<leader>left",
"session_parent": "<leader>up",
"messages_page_up": "pageup",
"messages_page_down": "pagedown",
"messages_half_page_up": "ctrl+alt+u",
"messages_half_page_down": "ctrl+alt+d",
"messages_first": "ctrl+g,home",
"messages_last": "ctrl+alt+g,end",
"messages_next": "none",
"messages_previous": "none",
"messages_copy": "<leader>y",
"messages_undo": "<leader>u",
"messages_redo": "<leader>r",
"messages_last_user": "none",
"messages_toggle_conceal": "<leader>h",
"model_list": "<leader>m",
"model_cycle_recent": "f2",
"model_cycle_recent_reverse": "shift+f2",
"model_cycle_favorite": "none",
"model_cycle_favorite_reverse": "none",
"variant_cycle": "ctrl+t",
"command_list": "ctrl+p",
"agent_list": "<leader>a",
"agent_cycle": "tab",
"agent_cycle_reverse": "shift+tab",
"input_clear": "ctrl+c",
"input_paste": "ctrl+v",
"input_submit": "return",
"input_newline": "shift+return,ctrl+return,alt+return,ctrl+j",
"input_move_left": "left,ctrl+b",
"input_move_right": "right,ctrl+f",
"input_move_up": "up",
"input_move_down": "down",
"input_select_left": "shift+left",
"input_select_right": "shift+right",
"input_select_up": "shift+up",
"input_select_down": "shift+down",
"input_line_home": "ctrl+a",
"input_line_end": "ctrl+e",
"input_select_line_home": "ctrl+shift+a",
"input_select_line_end": "ctrl+shift+e",
"input_visual_line_home": "alt+a",
"input_visual_line_end": "alt+e",
"input_select_visual_line_home": "alt+shift+a",
"input_select_visual_line_end": "alt+shift+e",
"input_buffer_home": "home",
"input_buffer_end": "end",
"input_select_buffer_home": "shift+home",
"input_select_buffer_end": "shift+end",
"input_delete_line": "ctrl+shift+d",
"input_delete_to_line_end": "ctrl+k",
"input_delete_to_line_start": "ctrl+u",
"input_backspace": "backspace,shift+backspace",
"input_delete": "ctrl+d,delete,shift+delete",
"input_undo": "ctrl+-,super+z",
"input_redo": "ctrl+.,super+shift+z",
"input_word_forward": "alt+f,alt+right,ctrl+right",
"input_word_backward": "alt+b,alt+left,ctrl+left",
"input_select_word_forward": "alt+shift+f,alt+shift+right",
"input_select_word_backward": "alt+shift+b,alt+shift+left",
"input_delete_word_forward": "alt+d,alt+delete,ctrl+delete",
"input_delete_word_backward": "ctrl+w,ctrl+backspace,alt+backspace",
"history_previous": "up",
"history_next": "down",
"terminal_suspend": "ctrl+z",
"terminal_title_toggle": "none",
"tips_toggle": "<leader>h"
}
}

Touche leader

OpenCode utilise une touche leader pour la plupart des raccourcis clavier. Cela evite les conflits dans votre terminal.

Par defaut, ctrl+x est la touche leader et la plupart des actions necessitent que vous appuyiez d’abord sur la touche leader puis sur le raccourci. Par exemple, pour demarrer une nouvelle session, vous appuyez d’abord sur ctrl+x puis sur n.

Vous n’avez pas besoin d’utiliser une touche leader pour vos raccourcis clavier, mais nous vous le recommandons.


Desactiver un raccourci

Vous pouvez desactiver un raccourci en ajoutant la cle a votre configuration avec la valeur “none”.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"keybinds": {
"session_compact": "none"
}
}

Raccourcis du prompt du bureau

L’entree du prompt de l’application de bureau OpenCode prend en charge les raccourcis de style Readline/Emacs courants pour l’edition de texte. Ceux-ci sont integres et actuellement non configurables via opencode.json.

RaccourciAction
ctrl+aDeplacer au debut de la ligne actuelle
ctrl+eDeplacer a la fin de la ligne actuelle
ctrl+bDeplacer le curseur d’un caractere vers l’arriere
ctrl+fDeplacer le curseur d’un caractere vers l’avant
alt+bDeplacer le curseur d’un mot vers l’arriere
alt+fDeplacer le curseur d’un mot vers l’avant
ctrl+dSupprimer le caractere sous le curseur
ctrl+kSupprimer jusqu’a la fin de la ligne
ctrl+uSupprimer jusqu’au debut de la ligne
ctrl+wSupprimer le mot precedent
alt+dSupprimer le mot suivant
ctrl+tTransposer les caracteres
ctrl+gAnnuler les fenetres contextuelles / interrompre la reponse en cours

Shift+Enter

Certains terminaux n’envoient pas de touches de modification avec Entree par defaut. Vous devrez peut-etre configurer votre terminal pour envoyer Shift+Enter comme une sequence d’echappement.

Windows Terminal

Ouvrez votre settings.json a l’emplacement :

%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json

Ajoutez ceci au tableau actions de niveau racine :

"actions": [
{
"command": {
"action": "sendInput",
"input": "\u001b[13;2u"
},
"id": "User.sendInput.ShiftEnterCustom"
}
]

Ajoutez ceci au tableau keybindings de niveau racine :

"keybindings": [
{
"keys": "shift+enter",
"id": "User.sendInput.ShiftEnterCustom"
}
]

Enregistrez le fichier et redemarrez Windows Terminal ou ouvrez un nouvel onglet.