Editor Cheatsheet

Vim / Neovim
进阶效率清单

高频操作速查,从移动、修改到多行块操作的完整索引。掌握文本对象后,几乎不再需要方向键。

核心公式:动作(c / d / y)+ 范围(iw / i( / i")= 精确操作
01

高频移动(替代方向键)

操作按键说明
下一个单词开头w快速向前跳词
上一个单词开头b向后跳词
单词结尾e跳到词尾
行首(第一列)0绝对行首
首个非空字符^跳过缩进
行尾$行末
最后非空字符g_常用于复制整行内容
02

相对行号跳转

开启 relativenumber 后,左侧数字即是跳转所需行数,数字+j/k 即可精准跳跃。
操作按键示例
向下跳 N 行Nj5j → 向下 5 行
向上跳 N 行Nk8k → 向上 8 行
删除到下方 N 行dNjd5j
复制到下方 N 行yNjy4j
可视选中下方 N 行VNjV6j
04

快速修改(最提升效率)

操作按键说明
改一个单词ciwchange inner word
改整行cc删除并进入插入模式
改到行尾c$从光标位置到行尾
改括号内ci(不含括号本身
改引号内ci"不含引号本身
删除单词diwdelete inner word
删除括号内容di(不含括号本身
05

复制 / 删除范围(文本对象)

操作按键说明
复制单词yiwyank inner word
复制括号内yi(不含括号
复制括号含边界ya(包含括号
删除引号内di"常用于字符串
删除标签内ditHTML / XML 标签
复制段落yapyank around paragraph
06

重复操作(核心能力)

. 是 Vim 最强大的命令之一——将上一次完整的修改操作原样重放到当前光标位置。
操作按键说明
重复上次修改.最重要命令之一
撤销uundo
重做Ctrl + rredo
07

多行 / 块操作(进阶)

操作按键说明
进入块选择Ctrl + v可视块模式(Visual Block)
多行前插Ctrl+vI → … → Esc选中多行后在行首批量插入
多行追加Ctrl+vA → … → Esc选中多行后在行尾批量追加
08

系统剪贴板

操作按键��明
复制到系统剪贴板"+ymacOS 通用
粘贴系统剪贴板"+p粘贴外部内容
全局默认剪贴板set clipboard=unnamedplus推荐写入配置,省去 "+ ��缀
09

实战组合(开发高频)

场景按键序列说明
改函数参数f(ci(定位左括号后改括号内容
改字符串ci"常用,直接替换引号内文本
删除整段逻辑dap删除段落(含空行)
快速复制变量yiwp复制当前单词并粘贴
批量多处修改ciw.改一处后用 . 重复,批量修改
复制整行无换行0vg_y行首→可视→最后非空字符→复制
10

核心思维(关键)

动作 (Verb)
c / d / y
改 / 删 / 复制
范围 (Object)
iw / i( / i" / ip
单词 / 括号 / 引号 / 段落
修饰 (Modifier)
i (inner) / a (around)
不含 / 含边界符号
重复 (Repeat)
.
重放上次完整修改
ciw 改单词  ·  di( 删除括号内  ·  yi" 复制引号内容  ·  yap 复制段落
Developer Cheatsheet

Claude Code
快捷键速查表

macOS 环境下 Claude Code 的完整快捷键索引,按使用频率和场景分类,助你快速掌握 AI 辅助编程工作流。

Ctrl 指 macOS 键盘上的 Control / ⌃,不是 Command / ⌘。在不同终端或 IDE 中可能存在冲突,可在 Claude Code 内按 ? 查看当前环境可用快捷键。
01

高频必备

频率快捷键macOS作用典型场景
高频Ctrl + C⌃C取消输入或中断生成立即停止正在执行的任务
高频EscEsc中断 Claude 当前回复想打断回答、补充新要求
高频Ctrl + D⌃D退出 Claude Code 会话结束当前 session
高频↑ / ↓↑ / ↓浏览历史 prompt快速复用或修改上一条指令
高频//打开 slash command 菜单使用 /clear、/compact、/model 等命令
高频@路径@path/to/file引用文件或目录让 Claude 分析某个文件
高频TabTab自动补全命令或路径输入 slash command、文件路径时加速
高频Shift + Tab⇧Tab切换 permission mode在默认/计划/自动接受编辑等模式间切换
高频Ctrl + O⌃O切换 verbose / transcript view查看工具调用、thinking 摘要
高频??查看当前环境快捷键不确定某快捷键是否可用时
02

会话控制

频率快捷键macOS作用
高频Ctrl + C⌃C取消当前输入或中断生成
高频EscEsc中断 Claude 当前回复
高频Ctrl + D⌃D退出 Claude Code 会话
中频Ctrl + XCtrl + K⌃X → ⌃KKill all background agents
中频⌃X → ⌃K × 2(3秒内)双击确认确认终止所有后台 agents
03

历史记录 & 回滚

频率快捷键 / 命令作用
高频↑ / ↓在历史 prompt 中上下切换
中频Ctrl + R反向搜索 prompt 历史
中频Esc, Esc(连按两次)打开 rewind / checkpoint 菜单
中频/clear清空当前会话上下文
中频/compact压缩当前上下文(保留关键信息)
04

显示、调试 & 查看过程

频率快捷键 / 命令作用
高频Ctrl + O切换 verbose / transcript view,查看工具调用过程
高频?显示当前环境可用快捷键
中频/cost查看当前会话 token / 成本信息
中频/model查看或切换当前模型
中频/status查看当前 Claude Code 状态
低频/doctor检查 Claude Code 安装与环境问题
05

权限 & 工作模式切换

Shift + Tab 循环切换以下模式:默认模式 → 计划模式(plan mode)→ 自动接受编辑(acceptEdits)→ 跳过权限确认(bypassPermissions)
频率快捷键 / 命令作用
高频Shift + Tab循环切换 permission mode
中频Shift + Tab → plan mode先让 Claude 制定方案,不直接改文件
中频Shift + Tab → acceptEdits自动接受 Claude 对文件的编辑
低频claude --dangerously-skip-permissions启动时跳过权限确认(仅限隔离环境)
06

文件引用 & 上下文输���

频率输入方式示例作用
高频@ + 文件路径@src/app.ts引用单个文件
高频@ + 目录路径@src/components/引用整个目录结构
高频Tab 自动补全src/ + Tab快速选择文件或目录
中频粘贴代码块```ts ... ```直接提供代码片段
中频/add-dir/add-dir ../other添加额外工作目录
低频/init/init初始化项目上下文说明文件
07

Slash Commands 常用命令

频率命令作用
高频/clear清空当前上下文,重新开始
高频/compact压缩上下文,避免过长
高频/model查看或切换模型
高频/help查看帮助
中频/cost查看 token / 成本信息
中频/status查看账号、模型、目录、权限等状态
中频/doctor环境诊断,排查安装问题
中频/config查看或修改配置
中频/permissions管理权限设置
中频/keybindings打开快捷键配置
中频/memory管理记忆 / 项目上下文
中频/review请求代码审查
中频/pr_comments查看 GitHub PR 评论
低频/bug提交 bug 反馈
低频/vim切换 Vim 编辑模式
08

输入编辑快捷键

频率快捷键macOS作用
高频Ctrl + A⌃A光标移动到行首
高频Ctrl + E⌃E光标移动到行尾
高频Ctrl + U⌃U删除光标前整行内容
高频Ctrl + K⌃K删除光标后内容
高频Option + ← / →⌥← / ⌥→按单词移动光标
中频Ctrl + W⌃W删除光标前一个单词
中频Ctrl + Y⌃Y粘贴刚删除的内容
中频Ctrl + L⌃L清屏
10

自定义快捷键

配置文件路径:~/.claude/keybindings.json(Claude Code v2.1.18+ 支持),使用 /keybindings 命令创建或打开。
~/.claude/keybindings.json
{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+e": "chat:externalEditor",
        "ctrl+u": null
      }
    }
  ]
}

按场景速查

分析文件
@path/to/file
引用单个文件让 Claude 分析
复用上一条
快速重用历史输入
中断回复
Esc
打断当前回答
强制取消
Ctrl + C
立即停止当前任务
查看过程
Ctrl + O
查看 thinking 摘要/工具调用
切换模式
Shift + Tab
在计划/自动接受编辑等模式间切换
回滚节点
Esc, Esc
打开 checkpoint 菜单
清空上下文
/clear
开启全新对话上下文
压缩上下文
/compact
长会话继续推进
切换模型
/model
根据任务复杂度调整模型

优先级记忆版

优先级快捷键 / 命令用途
P0Ctrl + C立即停止
P0Esc打断回复
P0Ctrl + D退出
P0↑ / ↓找历史输入
P0/打开命令菜单
P0@文件路径引用文件
P0Shift + Tab切换工作模式
P0Ctrl + O查看详细过程
P1/clear清空上下文
P1/compact压缩上下文
P1Esc, Esc回滚 checkpoint
P1Ctrl + R搜索历史 prompt
P1/model切换模型
P2/permissions管理权限
P2/keybindings自定义快捷键
P2/doctor环境诊断
P2/review代码审查
Terminal Cheatsheet

Kaku Terminal
快捷键速查表

macOS 原生修饰键,Opt = Option/Alt,Ctrl = Control。Kaku 是基于 WezTerm 构建的智能终端,集成 AI 助手和多种开发工具。

Cmd + W 智能关闭:若有多个 pane 则关闭当前 pane;若有多个 tab 或窗口则关闭当前 tab;否则隐藏应用。
01

窗口管理

操作快捷键
新建窗口Cmd + N
关闭 pane / tab / 隐藏(智能)Cmd + W
关闭当前标签页Cmd + Shift + W
隐藏应用Cmd + H
最小化窗口Cmd + M
切换全屏Cmd + Ctrl + F
退出Cmd + Q
全局悬浮窗口Cmd + Opt + Ctrl + K
02

标签页操作

操作快捷键
新建标签页Cmd + T
切换到第 1–9 个标签Cmd + 1Cmd + 9
上一个标签Cmd + Shift + [
下一个标签Cmd + Shift + ]
关闭标签Cmd + Shift + W
重新打开已关闭标签Cmd + Shift + T
重命名标签双击标签标题
03

分栏操作

操作快捷键
垂直分栏Cmd + D
水平分栏Cmd + Shift + D
切换分栏方向Cmd + Shift + S
放大 / 还原当前 paneCmd + Shift + Enter
在 pane 间导航Cmd + Opt + Arrows
调整 pane 大小Cmd + Ctrl + Arrows
向当前 tab 广播输入Cmd + Opt + I
向所有 tab 广播输入Cmd + Shift + I
04

Shell 编辑

操作快捷键
向左 / 右跳一个单词Opt + Left / Opt + Right
跳到行首 / 行尾Cmd + Left / Cmd + Right
删除到行首Cmd + Backspace
删除一个单词Opt + Backspace
换行但不执行Cmd + EnterShift + Enter
05

字体大小

操作快捷键
放大Cmd + =
缩小Cmd + -
重置Cmd + 0
06

Kaku 特色功能

操作快捷键
清屏 + 清除滚动缓冲区Cmd + K
打开设置面板Cmd + ,
打开 AI 面板Cmd + Shift + A
打开 AI 聊天Cmd + L
应用 Kaku 助手建议Cmd + Shift + E
恢复上一个窗口快照Cmd + Opt + Shift + T
打开 lazygitCmd + Shift + G
打开 yazi 文件管理器Cmd + Shift + Y
浏览远程文件(SSH)Cmd + Shift + R
打开 Doctor 面板Ctrl + Shift + L
07

鼠标操作

操作触发方式
复制选中内容到剪贴板释放鼠标左键(选中后自动复制)
打开链接Cmd + Click
移动光标到点击列(Shell 提示符行)Opt + Click
08

自定义快捷键

配置文件路径:~/.config/kaku/kaku.lua。通过 table.insert(config.keys, ...) 追加绑定,不要直接赋值新 table,否则会覆盖 Kaku 默认配置。
~/.config/kaku/kaku.lua
-- 追加到 config.keys(不要覆盖)
table.insert(config.keys, {
  key = 'RightArrow',
  mods = 'CMD|SHIFT',
  action = wezterm.action.ActivatePaneDirection('Right'),
})

-- 示例:将 AI Chat 重绑定到 Cmd+Shift+Space
table.insert(config.keys, {
  key = 'Space',
  mods = 'CMD|SHIFT',
  action = wezterm.action.EmitEvent('kaku-ai-chat'),
})
更多可用 action 参见 WezTerm KeyAssignment 参考文档
Developer Handbook

Git & GitHub
完整场景化指南

从零开始构建本地仓库,理解分支与合并的原理,掌握团队协作的完整流程。每一步操作都有原因,每一个概念都有类比。

Git 原理 Branch & Merge 团队协作 VS Code 集成 回滚操作
00

三空间模型 —— 理解一切的基础

在使用任何 Git 命令之前,先建立这个最重要的心智模型:Git 把你的代码分布在四个"空间"里,所有命令本质上都是在这四个空间之间搬移数据

工作区
Working Directory
你直接编辑的文件,磁盘上的真实内容
add → ← restore
暂存区
Staging Area
准备提交的快照,commit 前的缓冲层
commit → ← reset
本地仓库
Local Repo (.git)
完整历史提交链,所有分支都在这里
push → ← pull
远程仓库
Remote (GitHub)
云端备份 + 协作中心,团队共享的真相来源
核心心智模型

每次 commit 不是保存"变化",而是保存整个项目的一张快照。Git 用 SHA-1 哈希唯一标识每张快照,快照之间形成父子链条,这就是历史。分支只是一个指向某个 commit 的"指针标签",创建、删除分支几乎是零成本操作。

01

从零初始化本地仓库

在执行 git init 之前,你的项目只是一堆普通文件夹。这条命令会在项目根目录创建 .git 隐藏目录,里面存放整个仓库的数据库 —— 所有快照、所有分支、所有历史,全部在这里。

terminal
# 进入你的项目目录
cd ~/Projects/my-app

# 初始化 Git 仓库,创建 .git 目录
git init

# 查看当前状态(所有文件显示为 Untracked)
git status

推荐:先配置 .gitignore

.gitignore
# Node.js
node_modules/
dist/
.env
.env.local

# macOS 系统文件
.DS_Store

# 编辑器
.vscode/
.idea/

# 构建产物
*.log
coverage/
02

第一次提交 —— 理解三步走

从工作区到仓库,必须经过两道门。这是最重要的操作流程:

terminal
# 第一步:把所有文件放进暂存区
git add .

# 查看哪些文件进了暂存区(显示绿色)
git status

# 第二步:把暂存区的快照永久写入仓库
git commit -m "初始提交"
为什么要有暂存区这个中间层?

你可能同时改了 10 个文件,但只想把其中 3 个作为一次有意义的提交。暂存区让你精确控制每次 commit 的内容范围,是一种让提交历史保持清晰的设计。

Commit 信息规范

前缀含义示例
feat新功能feat: 用户头像上传
fixBug 修复fix: 修正登录校验逻辑
docs文档更新docs: 更新 README
refactor重构refactor: 提取公共工具函数
chore杂项chore: 升级依赖版本
revert回滚revert: 撤销误合并的分支
03

连接远程仓库

在 GitHub 创建好仓库后(不勾选任何初始化选项),把本地和远程关联起来:

terminal — SSH 方式(推荐)
# 添加远程,"origin" 是约定俗成的别名
git remote add origin git@github.com:用户名/仓库名.git

# -u 设置默认追踪目标,之后只需 git push
git push -u origin main

# 验证远程配置
git remote -v
情况 B
git remote add origin ...
已有 .git 但无远程,直接添加即可
情况 C
git remote set-url origin ...
远程地址填错了,用 set-url 修正
04

分支 —— Git 最强大的能力

分支的本质是让你在不污染主线的情况下做实验。想象你有一本书的稿件,想尝试一个新的写法但不确定,分支就是给你开一个"平行草稿",满意了再合并回来。

C1 C2 C3 checkout -b feature/login C4 C5 C6 Merge commit ▪ main ▪ feature/login 分支从 C3 分叉,各自发展,最终通过 merge commit 汇合。
terminal — 分支基本操作
# 新建并立即切换(最常用)
git checkout -b feature/login

# 查看所有分支(* 标记当前所在)
git branch
git branch -a         # 含远程分支

# 切换到���有分支
git checkout main

# 删除已合并的本地分支
git branch -d feature/login

# ���除远程分支
git push origin --delete feature/login
05

合并分支 —— 三种场景

场景一:Fast-forward(最简单)

如果 main 自从分叉后没有任何新提交,Git 直接把 main 指针往前移,不产生 merge commit,历史依然是直线。

fast-forward merge
git checkout main
git merge feature/login    # main 指针直接快进

场景二:三方合并(正常协作)

three-way merge
git checkout main
git pull                   # 先同步远程 main
git merge feature/login    # 生成 merge commit,两线汇合
git push                   # 推送合并结果

场景三:发生冲突

冲突文件内容
<<<<<<< HEAD(当前分支 main)
const port = 3000;
=======
const port = 8080;
>>>>>>> feature/login
terminal — 冲突解决流程
git merge feature/login
git status             # 显示 "both modified"
# 编辑文件,删除冲突标记,保留正确内容
git add src/config.ts
git commit
VS Code 冲突视图

VS Code 会在冲突区域上方显示 Accept Current / Incoming / Both 按钮,比手动删除标记更直观。

06

Rebase —— 让历史变成一条直线

Rebase 把你分支上的提交"剪切"下来,重新"粘贴"到目标分支的最新位置之后。结果是提交历史变成一条直线,没有 merge commit。

terminal — rebase 流程
git checkout feature/login
git rebase main
# 冲突时:
git add .
git rebase --continue
# 放弃 rebase:
git rebase --abort
铁律:已推送的分支禁止 rebase

rebase 会改写 commit 哈希值,等于重写历史。已经 push 的分支只用 merge,永远不 rebase。

Merge vs Rebase 场景对照

场景推荐操作理由
功能分支 → main 合并merge保留完整历史
同步 main 最新变更到功能分支rebase保��线性历史
已推送到远程的分支禁止 rebase改写历史会破坏他人仓库
整理本地未推送的提交rebase -i交互式变基,合并/编辑提交
07

VS Code 集成操作

面板区域对应命令说明
右上角分支名 badgegit checkout点击可切换 / 创建分支
输入框 + Commit 按钮git commit -m "..."填写信息后点击提交
文件旁的 + 号git add <file>把单个文件放入暂存区
文件旁的 - 号git restore --staged从暂存区移回工作区
... 菜单(三点)Pull / Push / Fetch / Merge / Rebase / Stash所有高级操作的入口
推荐安装 GitLens 扩展

GitLens 在每行代码旁显示最后一次 commit 的作者和时间(blame 信息),还提供可视化的分支历史图。

08

团队协作全流程(Feature Branch Workflow)

每个功能在独立分支上开发,通过 Pull Request 审查后合并到 main。

  • 1
    同步主干,确保基于最新代码
    为什么:开始前获取别人的最新改动,减少后续冲突概率
    git checkout main && git pull
  • 2
    创建功能分支,隔离开发
    为什么:main 始终保持可发布状态,功能开发互不干扰
    git checkout -b feature/user-profile
  • 3
    开发、小步提交
    为什么:每个有意义的改动单独提交,方便追溯、回滚,也方便 code review
    git add . && git commit -m "feat: 用户头像上传"
  • 4
    推送分支到远程
    为什么:备份本地工作;让团队能看到你在做什么;为 PR 做准备
    git push -u origin feature/user-profile
  • 5
    在 GitHub 上创建 Pull Request
    为什么:PR 是代码进入主干的审查门,团队可以评论、讨论、要求修改
    # GitHub 网页:推送后出现 "Compare & pull request" → 点击
    # 填写 PR 标题和描述 → 指定 reviewer → 提��� PR
  • 6
    合并 PR 并本地同步清理
    为什么:远程已合并,本地 main 要跟上;删除完成的功能分支
    git checkout main && git pull
    git branch -d feature/user-profile
09

分支落后主干时 —— 两种同步策略

策略一:merge main(安全)
git merge main
历史完整但有交叉点。适合已推送的分支,希望保留完整历史。
策略二:rebase main(整洁)
git rebase main
历史变成直线,无 merge commit。仅适合未推送的本地分支。
terminal — 日常拉取推荐姿势
git pull                   # 等同于 fetch + merge
git pull --rebase          # 等同于 fetch + rebase(推荐,保持线性)

# 分开执行(更安全,先看看再合并)
git fetch                  # 只拉取,不合并
git log HEAD..origin/main  # 先看看远程有哪些新提交
git merge origin/main      # 确认后再合并
10

回滚速查 —— 五种撤销场景

场景命令影响历史影响远程
丢弃工作区改动(未 add)git restore <file>
撤销暂存(已 add 未 commit)git restore --staged <file>
撤销最近一次 commit(保留改动)git reset --soft HEAD~1本地
完全丢弃到某次 commitgit reset --hard <hash>危险
安全回滚已推送的 commitgit revert <hash>追加新提交需要 push
terminal — 五种回滚详解
## 场景1:改了文件,还没 add,想放弃
git restore src/config.ts
git restore .

## 场景2:已经 add,想退回工作区
git restore --staged src/config.ts

## 场景3:commit 了但没 push,想撤销(改动回到暂存区)
git reset --soft HEAD~1

## 场景4:完全丢弃(危险!改动不可恢复)
git reset --hard HEAD~1

## 场景5:已 push,需要安全回滚
git log --oneline
git revert <commit-hash>
git push

## 救命:reset --hard 后找回代码
git reflog
git reset --hard <reflog-hash>
reset --hard 是不可逆操作

绝大多数"代码删没了"的情况都能通过 git reflog 找回,但前提是没有执行 git gc

四个核心原理

01
三个空间

工作区 → 暂存区 → 本地仓库 → 远程仓库。所有命令都是在这四个空间之间移动数据。

02
commit 是快照

不是记录"哪里变了",而是拍下整个项目当时的样子。哈希值唯一标识每张快照,快照之间的父子关系形成历史链。

03
分支是指针

分支名只是贴在某个 commit 上的标签。创建、删除、切换分支都是在操作这个指针,不会改动任何文件内容。

04
merge vs rebase

merge 把两条线汇合,历史完整但有交叉;rebase 把提交搬到另一条线末尾,历史整洁但改写了哈希。已推送的提交只能 merge。