Salta ai contenuti

Keybinds

Personalizza le tue scorciatoie da tastiera.

OpenCode ha un elenco di scorciatoie da tastiera che puoi personalizzare tramite la configurazione di 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"
}
}

Tasto leader

OpenCode utilizza un tasto leader per la maggior parte delle scorciatoie da tastiera. Questo evita conflitti nel tuo terminale.

Per impostazione predefinita, ctrl+x e il tasto leader e la maggior parte delle azioni richiedono di premere prima il tasto leader e poi la scorciatoia. Ad esempio, per avviare una nuova sessione premi prima ctrl+x e poi premi n.

Non devi usare un tasto leader per le tue scorciatoie da tastiera, ma lo consigliamo.


Disabilitare keybind

Puoi disabilitare una scorciatoia aggiungendo la chiave alla tua configurazione con il valore “none”.

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

Scorciatoie del prompt desktop

L’input del prompt dell’applicazione desktop OpenCode supporta scorciatoie comuni in stile Readline/Emacs per la modifica del testo. Queste sono integrate e attualmente non configurabili tramite opencode.json.

ScorciatoiaAzione
ctrl+aSpostarsi all’inizio della riga corrente
ctrl+eSpostarsi alla fine della riga corrente
ctrl+bSpostare il cursore indietro di un carattere
ctrl+fSpostare il cursore in avanti di un carattere
alt+bSpostare il cursore indietro di una parola
alt+fSpostare il cursore in avanti di una parola
ctrl+dEliminare il carattere sotto il cursore
ctrl+kKill fino alla fine della riga
ctrl+uKill fino all’inizio della riga
ctrl+wKill la parola precedente
alt+dKill la parola successiva
ctrl+tTrasporre i caratteri
ctrl+gAnnullare popover / interrompi la risposta in esecuzione

Maiusc+Invio

Alcuni terminali non inviano tasti di modifica con Invio per impostazione predefinita. Potrebbe essere necessario configurare il terminale per inviare Maiusc+Invio come una sequenza di escape.

Windows Terminal

Apri il tuo settings.json in:

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

Aggiungi questo all’array actions di livello root:

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

Aggiungi questo all’array keybindings di livello root:

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

Salva il file e riavvia Windows Terminal o apri una nuova scheda.