VSCode + Vim Cheatsheet

Published:

VSCode + Vim Cheatsheet

基础 Vim 导航

按键作用
h/j/k/l左/下/上/右
w/b下一个/上一个单词开头
e/ge下一个/上一个单词结尾
0/^/$行首/行首非空/行尾
}/{下一段/上一段(空行分割)
gg/G文件首/文件尾
<C-f>/<C-b>下一页/上一页
zz/zt/zb光标所在行 → 屏幕中间/顶部/底部

VSCode 集成键(最重要)

按键作用
gdGo to Definition — 跳转到定义
KHover — 查看类型/文档预览
<C-o>跳回上一个位置(最常用,像浏览器的后退)
<C-i>跳转到下一个位置(前进)
gr查找所有引用(Go to References)
gO文件 outline 列表
gh悬停显示类型(同 K,但不会移走光标)
]r / [r下一个/上一个引用
]d / [d下一个/上一个诊断(error/warning)

跳到文件

按键作用
<C-p>按文件名搜索(模糊匹配)
<C-p> → 输入 >按文件路径搜索
<C-p> → 输入 @按当前文件符号搜索
<C-p> → 输入 #按全局符号搜索(跨文件)
gfGoto File — 打开光标下的文件路径(import / include)
<C-^>在两个文件间快速切换

VSCode-specific 操作

按键作用
<leader><leader>打开上次编辑的文件(VSCodeVim <leader> 默认是 \
g/只在当前文件中搜索(不是全局搜索)
z]跳到定义(VSCodeVim 兼容键)
gd → 再按 gd如果第一次跳到的是 import,再按一次进源码

搜索与替换

按键作用
<C-f>g/当前文件搜索
<C-h>当前文件搜索替换
<C-Shift-f>全局搜索(侧栏)
<C-Shift-h>全局搜索替换
* / #搜索光标下的单词 下一个/上一个
n / N搜索结果 下一个/上一个

窗口与标签

按键作用
<C-w>v垂直分屏
<C-w>s水平分屏
<C-w>h/j/k/l在分屏间跳转
<C-w>w循环切换分屏
<C-w>q关闭当前分屏
<C-Tab>切换 tab
gt / gT下一个 / 上一个 tab

Python 代码阅读实用组合

gd          跳到定义
<C-o>       跳回来
K           看函数签名/docstring
gr          看谁在调这个函数
gf          打开 import 的路径
<C-p>@      在当前文件搜某个符号

几个常用的自定义绑定(推荐加到 VSCode settings.json)

{
  // 取消高亮
  "vim.handleKeys": {
    "<C-l>": true,
  },
  // <leader>h = :noh 取消搜索高亮
  "vim.normalModeKeyBindings": [
    {
      "before": ["<leader>", "h"],
      "after": [":", "n", "o", "h", "<CR>"]
    }
  ]
}

不需要的 Vim 功能(影响 VSCode 体验,建议关掉)

{
  "vim.useSystemClipboard": true,      // yy/p 走系统剪贴板
  "vim.hlsearch": true,                // 搜索高亮保留
  "vim.leader": "<space>",             // 把 leader 从 \ 改成空格(推荐)
  "vim.foldfix": true,                 // 修复 z/z 冲突
}