Keybinds
Tùy chỉnh phím tắt trong OpenCode.
Leader key
OpenCode dùng leader key cho hầu hết các thao tác. Mặc định là ctrl+x. Bạn nhấn leader trước, sau đó nhấn phím tắt.
Ví dụ: để bắt đầu session mới → ctrl+x rồi n.
Bạn không bắt buộc phải dùng leader key, nhưng khuyến nghị nên dùng để tránh conflict với terminal.
Cấu hình
Keybinds được cấu hình trong file tui.json:
{
"$schema": "https://opencode.ai/tui.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",
"session_new": "<leader>n",
"session_list": "<leader>l",
"session_interrupt": "escape",
"session_compact": "<leader>c",
"model_list": "<leader>m",
"model_cycle_recent": "f2",
"variant_cycle": "ctrl+t",
"command_list": "ctrl+p",
"agent_list": "<leader>a",
"agent_cycle": "tab",
"agent_cycle_reverse": "shift+tab"
}
}
Navigation
| Keybind | Mô tả |
|---|---|
session_child_first | Chuyển đến child session đầu tiên |
session_child_cycle | Chuyển tiếp child session |
session_child_cycle_reverse | Chuyển ngược child session |
session_parent | Về parent session |
Messages
| Keybind | Mô tả |
|---|---|
messages_page_up/down | Cuộn trang lên/xuống |
messages_copy | Copy tin nhắn |
messages_undo | Undo |
messages_redo | Redo |
Input
| Keybind | Mô tả |
|---|---|
input_submit | Gửi tin nhắn |
input_newline | Xuống dòng (Shift+Enter, Ctrl+Enter) |
input_clear | Xóa input |
input_paste | Dán |
Disable keybind
Đặt giá trị "none" để disable:
{
"keybinds": {
"session_compact": "none"
}
}
Desktop prompt shortcuts
Desktop app hỗ trợ Readline/Emacs shortcuts:
| Shortcut | Action |
|---|---|
ctrl+a | Về đầu dòng |
ctrl+e | Về cuối dòng |
ctrl+b/f | Lùi/tới 1 ký tự |
alt+b/f | Lùi/tới 1 từ |
ctrl+d | Xóa ký tự |
ctrl+k | Xóa đến cuối dòng |
ctrl+u | Xóa đến đầu dòng |
ctrl+w | Xóa từ trước |
alt+d | Xóa từ sau |
Shift+Enter
Một số terminals không gửi modifier keys với Enter. Bạn có thể cần cấu hình terminal:
Windows Terminal
Thêm vào settings.json:
"actions": [
{
"command": {
"action": "sendInput",
"input": "\u001b[13;2u"
},
"id": "User.sendInput.ShiftEnterCustom"
}
]