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"
  }
}
KeybindMô tả
session_child_firstChuyển đến child session đầu tiên
session_child_cycleChuyển tiếp child session
session_child_cycle_reverseChuyển ngược child session
session_parentVề parent session

Messages

KeybindMô tả
messages_page_up/downCuộn trang lên/xuống
messages_copyCopy tin nhắn
messages_undoUndo
messages_redoRedo

Input

KeybindMô tả
input_submitGửi tin nhắn
input_newlineXuống dòng (Shift+Enter, Ctrl+Enter)
input_clearXóa input
input_pasteDán

Disable keybind

Đặt giá trị "none" để disable:

{
  "keybinds": {
    "session_compact": "none"
  }
}

Desktop prompt shortcuts

Desktop app hỗ trợ Readline/Emacs shortcuts:

ShortcutAction
ctrl+aVề đầu dòng
ctrl+eVề cuối dòng
ctrl+b/fLùi/tới 1 ký tự
alt+b/fLùi/tới 1 từ
ctrl+dXóa ký tự
ctrl+kXóa đến cuối dòng
ctrl+uXóa đến đầu dòng
ctrl+wXóa từ trước
alt+dXó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"
  }
]