TUI 的设计哲学

OpenCode TUI 的设计深受 Neovim 影响,由 terminal.shop 团队打造。它不仅仅是一个命令行界面,而是一个精心设计的终端应用,具有以下特点:

  • 模态操作:类似 Vim 的 Normal/Insert 模式切换
  • 键盘优先:所有操作都可以通过键盘完成
  • 视觉反馈:丰富的颜色和状态指示
  • 响应式布局:适应不同终端尺寸

界面布局

TUI 界面分为几个区域:

┌─────────────────────────────────────────┐
│  OpenCode          [model] [mode]       │  ← 状态栏
├─────────────────────────────────────────┤
│                                         │
│  对话历史区域                            │
│  (可滚动)                               │
│                                         │
├─────────────────────────────────────────┤
│  > 输入区域                             │  ← 输入框
│                                         │
└─────────────────────────────────────────┘

核心命令体系

斜杠命令

命令说明
/compact压缩对话历史,释放上下文空间
/models切换 LLM 模型
/share生成对话分享链接
/unshare取消分享
/undo撤销上一次修改
/init初始化项目
/help显示帮助
/clear清空对话历史

快捷键

OpenCode 使用 Ctrl+X 作为 leader key,类似 Vim 的 Leader 键:

快捷键说明
Shift+Tab切换 Plan/Build 模式
Ctrl+C取消当前操作
Ctrl+D退出 OpenCode
Ctrl+L清屏
Ctrl+X + C复制选中内容
Ctrl+X + V粘贴
Ctrl+X + F文件选择器
Ctrl+X + M模型选择器
PageUp/PageDown滚动对话历史

主题配置

OpenCode 支持自定义主题。在配置文件中设置:

{
  "theme": {
    "name": "dracula",
    "colors": {
      "background": "#282a36",
      "foreground": "#f8f8f2",
      "accent": "#bd93f9",
      "success": "#50fa7b",
      "warning": "#f1fa8c",
      "error": "#ff5555"
    }
  }
}

内置主题包括:default、dracula、nord、monokai、solarized。

滚动加速

在对话历史较长时,可以使用滚动加速功能:

  • 快速按 PageUp/PageDown 会加速滚动
  • 按住 Shift + 方向键可以精细滚动
  • 按 Home/End 跳转到顶部/底部

编辑器集成

Vim/Neovim

在 Vim 中嵌入 OpenCode:

" 在 split 中打开 OpenCode
nnoremap <leader>oc :terminal opencode<CR>

" 发送当前文件给 OpenCode
nnoremap <leader>os :execute '!opencode --file ' . expand('%')<CR>

VS Code

在 VS Code 终端中直接使用 opencode 命令即可。推荐使用集成终端的快捷键 Ctrl+` 快速打开。

WSL 环境优化

在 Windows WSL 中使用 OpenCode TUI,需要以下优化:

终端选择

推荐使用 Windows Terminal,而非旧版 Console:

# 在 Windows Terminal 设置中配置 WSL profile
{
  "commandline": "wsl.exe -d Ubuntu",
  "font": {
    "face": "JetBrains Mono",
    "size": 12
  },
  "colorScheme": "Dracula"
}

字体配置

安装编程字体以获得最佳体验:

# 在 WSL 中安装字体
sudo apt install fonts-jetbrains-mono

# 或在 Windows 中安装
# 下载 JetBrains Mono 并安装到 Windows

性能优化

WSL2 的终端渲染可能较慢,可以调整:

# 减少动画
{
  "tui": {
    "animations": false,
    "scrollSpeed": 2
  }
}

自定义配置

完整配置示例 ~/.config/opencode/config.json:

{
  "provider": "anthropic",
  "model": "claude-sonnet-4-20250514",
  "theme": "dracula",
  "tui": {
    "lineNumbers": true,
    "scrollback": 10000,
    "animations": true
  },
  "keybindings": {
    "toggleMode": "shift+tab",
    "compact": "ctrl+k",
    "filePicker": "ctrl+x f"
  }
}