<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>快捷键 · AtomCode 文档</title>
<meta name="description" content="快捷键 — AtomCode 文档。">
<link rel="icon" type="image/png" href="https://cdn-static.gitcode.host/static/images/logo-favicon.png">
<link rel="stylesheet" href="../docs.css">
<script>(function(){try{var s=localStorage.getItem('atomcode_theme')||localStorage.getItem('atomcode-theme');if(s==='light'){document.documentElement.classList.add('light');document.documentElement.setAttribute('data-theme','light')}}catch(e){}})();</script>
</head>
<body data-page="keybindings">
<header class="dhdr" id="dhdr">
<a class="dhdr-logo" href="../../index.html">
<img src="https://cdn-news.gitcode.com/news/atomcode-icon1.png" alt="AtomCode">
<span>AtomCode</span>
<span class="dhdr-badge" data-i18n="badge.docs">DOCS</span>
<span class="dhdr-ver">v4.25.0</span>
</a>
<div class="dhdr-right">
<button class="search-trigger" data-open-search data-i18n-aria="aria.search" aria-label="搜索文档">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg>
<span data-i18n="search.trigger.text">搜索文档…</span>
<span class="kbd">⌘K</span>
</button>
<button class="icon-btn" id="themeBtn" data-i18n-aria="aria.theme" aria-label="切换主题"></button>
<button class="icon-btn" id="langBtn" data-i18n-aria="aria.lang" aria-label="切换语言">中</button>
<a class="dhdr-link" href="https://atomgit.com/atomgit_atomcode/atomcode" target="_blank" rel="noopener" data-i18n="hdr.repo">仓库 →</a>
<button class="icon-btn sb-toggle" id="sbToggle" data-i18n-aria="aria.sidebar" aria-label="目录">☰</button>
</div>
</header>
<div class="dlayout">
<aside class="dside" id="dside">
<div class="dside-group">
<div class="dside-group-t" data-i18n="side.g.overview">概览</div>
<a class="dside-link" href="./index.html" data-slug="index" data-i18n="side.index">文档首页</a>
</div>
<div class="dside-group">
<div class="dside-group-t" data-i18n="side.g.start">开始</div>
<a class="dside-link" href="./getting-started.html" data-slug="getting-started" data-i18n="side.getting-started">快速开始</a>
<a class="dside-link" href="./login.html" data-slug="login" data-i18n="side.login">登录方式</a>
<a class="dside-link" href="./configuration.html" data-slug="configuration" data-i18n="side.configuration">配置文件</a>
</div>
<div class="dside-group">
<div class="dside-group-t" data-i18n="side.g.usage">使用</div>
<a class="dside-link" href="./basic-usage.html" data-slug="basic-usage" data-i18n="side.basic-usage">基本使用</a>
<a class="dside-link" href="./slash-commands.html" data-slug="slash-commands" data-i18n="side.slash-commands">斜杠命令</a>
<a class="dside-link" href="./keybindings.html" data-slug="keybindings" data-i18n="side.keybindings">快捷键</a>
<a class="dside-link" href="./sessions.html" data-slug="sessions" data-i18n="side.sessions">会话与撤销</a>
</div>
<div class="dside-group">
<div class="dside-group-t" data-i18n="side.g.advanced">进阶</div>
<a class="dside-link" href="./tools.html" data-slug="tools" data-i18n="side.tools">内置工具</a>
<a class="dside-link" href="./approvals.html" data-slug="approvals" data-i18n="side.approvals">权限审批</a>
<a class="dside-link" href="./skills.html" data-slug="skills" data-i18n="side.skills">Skills 扩展</a>
<a class="dside-link" href="./mcp.html" data-slug="mcp" data-i18n="side.mcp">MCP 集成</a>
<a class="dside-link" href="./plugins.html" data-slug="plugins" data-i18n="side.plugins">Plugin 系统</a>
<a class="dside-link" href="./memory.html" data-slug="memory" data-i18n="side.memory">永久记忆</a>
<a class="dside-link" href="./project-instructions.html" data-slug="project-instructions" data-i18n="side.project-instructions">项目指令文件</a>
<a class="dside-link" href="./webui.html" data-slug="webui" data-i18n="side.webui">WebUI 界面</a>
<a class="dside-link" href="./webui-remote-access.html" data-slug="webui-remote-access" data-i18n="side.webui-remote-access">远程访问指南</a>
</div>
<div class="dside-group">
<div class="dside-group-t" data-i18n="side.g.ops">问题</div>
<a class="dside-link" href="./faq.html" data-slug="faq" data-i18n="side.faq">常见问题</a>
</div>
</aside>
<main class="dmain prose-docs">
<h1>快捷键</h1>
<p class="lede">AtomCode 的 TUI 是基于 ratatui + crossterm 构建的,常用快捷键尽量贴近主流终端工具的约定。在会话里输入 <code>/keys</code> 可以随时把这张表打印到当前 scrollback,<code>/help</code> 则查看所有斜杠命令。</p>
<h2>输入编辑</h2>
<table>
<thead>
<tr><th>按键</th><th>动作</th></tr>
</thead>
<tbody>
<tr><td><code>Enter</code></td><td>发送消息</td></tr>
<tr><td><code>Ctrl+J</code></td><td>换行(所有终端通用 — 发送的是 LF 字节,等同于 Enter 的换行作用)</td></tr>
<tr><td><code>\ </code> 后接 <code>Enter</code></td><td>换行(atomcode 自带兜底语法,所有终端通用 — 行尾反斜杠会被识别为续行)</td></tr>
<tr><td><code>Alt+Enter</code></td><td>换行(多数终端可用;macOS Apple Terminal 需在 Settings → Profiles → Keyboard 启用 "Use Option as Meta key";Windows Terminal 默认占用,可在设置里释放)</td></tr>
<tr><td><code>Shift+Enter</code></td><td>换行(仅以下终端区分 <code>Shift+Enter</code> 与 <code>Enter</code>:Kitty / WezTerm / iTerm2(需启用 Report Modifiers)/ Windows Terminal / Ghostty / Warp。Apple Terminal、xterm、GNOME Terminal、VS Code 集成终端不支持,请用 <code>Ctrl+J</code> 或 <code>\</code> + <code>Enter</code>)</td></tr>
<tr><td><code>Ctrl+Enter</code></td><td>换行(需启用 Kitty 键盘协议的终端,如 Kitty、WezTerm 等)</td></tr>
<tr><td><code>Esc</code></td><td>清空当前输入 / 打断正在流式输出的回复</td></tr>
<tr><td><code>↑ / ↓</code></td><td>浏览输入历史</td></tr>
<tr><td><code>Tab</code></td><td>接受补全(斜杠命令菜单、文件路径等)</td></tr>
<tr><td><code>Ctrl+U</code></td><td>清空整行</td></tr>
<tr><td><code>Ctrl+W</code></td><td>删除一个单词</td></tr>
<tr><td><code>Ctrl+K</code></td><td>删除从光标到行尾的内容</td></tr>
<tr><td><code>Ctrl+A</code></td><td>光标移到行首</td></tr>
<tr><td><code>Ctrl+E</code></td><td>光标移到行尾</td></tr>
</tbody>
</table>
<h2>浏览与滚动</h2>
<table>
<thead>
<tr><th>按键</th><th>动作</th></tr>
</thead>
<tbody>
<tr><td><code>Shift+↑ / Shift+↓</code></td><td>翻一行</td></tr>
<tr><td><code>PageUp / PageDown</code></td><td>翻一页(10 行)</td></tr>
<tr><td><code>Alt+↑ / Alt+↓</code></td><td>跳到上 / 下一条消息(macOS Apple Terminal 需先在 Settings → Profiles → Keyboard 启用 "Use Option as Meta key")</td></tr>
<tr><td><code>Ctrl+↑ / Ctrl+↓</code></td><td>跳到上 / 下一条<strong>自己发的</strong>消息</td></tr>
<tr><td><code>Home / End</code></td><td>跳到对话最顶端 / 最底端</td></tr>
<tr><td>鼠标滚轮</td><td>在聊天区上下滚(atomcode 接管)</td></tr>
<tr><td><code>Ctrl+L</code></td><td>清空当前会话的消息</td></tr>
</tbody>
</table>
<h2>选区与复制</h2>
<table>
<thead>
<tr><th>按键 / 操作</th><th>动作</th></tr>
</thead>
<tbody>
<tr><td>鼠标拖选</td><td>在聊天区选中文本(atomcode 接管,选区会自动滚动到边界)</td></tr>
<tr><td><code>Shift+</code> 拖鼠标</td><td>用宿主终端原生选区(绕过 atomcode,适合跨视区多行复制)</td></tr>
<tr><td><code>Ctrl+Shift+C</code></td><td>复制选区到系统剪贴板</td></tr>
<tr><td><code>/copy</code></td><td>复制 AI 的最后一条完整回复</td></tr>
<tr><td>右键菜单</td><td>在某些终端中可直接复制/粘贴(取决于终端而非 atomcode)</td></tr>
</tbody>
</table>
<h2>流程控制</h2>
<table>
<thead>
<tr><th>按键</th><th>动作</th></tr>
</thead>
<tbody>
<tr><td><code>Esc</code></td><td>取消当前正在进行的工具调用或流式输出</td></tr>
<tr><td><code>Ctrl+C</code></td><td>第一次:取消当前操作;连按第二次:退出程序</td></tr>
<tr><td><code>Ctrl+D</code></td><td>在输入框为空时,等同退出</td></tr>
</tbody>
</table>
<h2>工具权限对话框</h2>
<p>当模型准备执行危险操作(破坏性 bash 命令、写敏感文件、删除源码等)时,AtomCode 会弹出一个确认对话框,此时:</p>
<table>
<thead>
<tr><th>按键</th><th>动作</th></tr>
</thead>
<tbody>
<tr><td><code>y</code> / <code>Enter</code></td><td>允许这一次</td></tr>
<tr><td><code>a</code></td><td>本次会话内始终允许这种模式</td></tr>
<tr><td><code>n</code> / <code>Esc</code></td><td>拒绝</td></tr>
</tbody>
</table>
<div class="callout callout-info">
<strong>别贪心</strong>
<p>"始终允许"是按 <em>工具名 + 参数模式</em> 级别授予的,仅对当前会话生效,下次重启归零。如果你需要跨会话常驻的例外,请在配置层面处理(比如对某些路径做白名单)。</p>
</div>
<h2>下一步</h2>
<ul>
<li><a href="./slash-commands.html">斜杠命令</a> —— 记住了快捷键,也别忘记命令补全</li>
<li><a href="./sessions.html">会话与撤销</a> —— <code>/undo</code> 的精确含义</li>
</ul>
<footer class="dftr">
<span data-i18n="ftr.copy">© 2026 AtomCode · MIT</span>
<a href="https://atomgit.com/atomgit_atomcode/atomcode/issues" target="_blank" rel="noopener" data-i18n="ftr.issue">报告问题</a>
</footer>
</main>
</div>
<div class="search-modal" id="searchModal" role="dialog" data-i18n-aria="aria.search" aria-label="搜索文档">
<div class="search-modal-bg"></div>
<div class="search-modal-box">
<div class="search-input-wrap">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg>
<input id="searchInput" type="search" data-i18n-placeholder="search.placeholder" placeholder="搜索文档…" autocomplete="off">
<span class="search-esc">ESC</span>
</div>
<div class="search-results" id="searchResults"></div>
</div>
</div>
<script src="../docs.js"></script>
</body>
</html>