VSCode Vim: 从零开始的编辑器效率之旅

January 4, 2025

最近从 Windows 迁移到了 Mac。虽然 Mac 的触控板体验相当出色,但在编程时仍然无法完全替代鼠标的精准度。为了提升编码效率,我开始尝试在 VSCode 中使用 Vim 模式,让双手尽可能地留在键盘上。经过一段时间的适应,我发现 Vim 的操作方式不仅能够替代大部分触控板操作,还能显著提升编码效率。

🚀 基础配置优化

1. 让 ESC 更易用

Vim 中频繁使用 ESC 键来切换模式,但它在键盘左上角的位置并不友好。我们可以通过以下配置将 jj 映射为 ESC:

{
  "vim.insertModeKeyBindings": [
    {
      "before": ["j", "j"],
      "after": ["<Esc>"]
    }
  ]
}

2. 复制操作更直观

启用复制文本高亮功能,提供更好的视觉反馈:

{
  "vim.highlightedyank.enable": true,
  "vim.highlightedyank.duration": 250,
  "vim.highlightedyank.color": "rgba(147, 112, 219, 0.4)"
}

💡 提升工作效率的快捷键

Quick Fix 增强

VSCode 的 Quick Fix 功能强大但默认不支持 Vim 式导航,添加以下配置来改善体验:

[
  {
    "key": "ctrl+k",
    "when": "codeActionMenuVisible",
    "command": "selectPrevCodeAction"
  },
  {
    "key": "ctrl+j",
    "when": "codeActionMenuVisible",
    "command": "selectNextCodeAction"
  }
]

常用 VSCode 快捷键

操作Mac 快捷键说明
切换编辑器 [ / ]在打开的编辑器间切换
保存文件 S保存当前文件
关闭编辑器 W关闭当前编辑器
关闭所有 W关闭所有编辑器

常用移动命令

命令说明
h j k l左下上右移动
w下一个单词开头
b上一个单词开头
0行首
$行尾
gg文件开头
G文件结尾

编辑操作

命令说明
i当前位置插入
a当前位置后插入
o下一行插入
dd删除当前行
yy复制当前行
p粘贴

🌟 Vim 必知必会

基础模式

  • Normal 模式: 默认模式,用于导航和编辑
  • Insert 模式: 输入文本模式
  • Visual 模式: 选择文本模式
  • Command 模式: 执行命令模式

常用移动命令

命令说明
h j k l左下上右移动
w下一个单词开头
b上一个单词开头
0行首
$行尾
gg文件开头
G文件结尾

编辑操作

命令说明
i当前位置插入
a当前位置后插入
o下一行插入
dd删除当前行
yy复制当前行
p粘贴

🌟 进阶技巧

1. 组合命令

Vim 的强大之处在于命令的组合:

  • 3dd: 删除接下来的 3 行
  • 2yy: 复制接下来的 2 行
  • 5j: 向下移动 5 行

2. 文本对象

使用文本对象可以更精确地操作代码:

  • ci": 改变双引号中的内容
  • di{: 删除花括号中的内容
  • ya[: 复制方括号中的内容

3. 搜索和替换

  • /pattern: 向下搜索
  • ?pattern: 向上搜索
  • :%s/old/new/g: 全局替换

4. 快速移动

  • Ctrl + e 向下滚动
  • Ctrl + y 向上滚动
  • Ctrl + d 向下滚动半屏
  • Ctrl + u 向上滚动半屏

当然也可以使用 mac 或者 windows 的系统快捷键。例如在mac上可以使用 + / 向下/向上滚动。

vscode 其他效率插件推荐

  • file utils - 提供各种文件相关的命令。包括删除、复制、移动、重命名、创建文件夹等。

🎉 小贴士

  1. 循序渐进:不要试图一次性掌握所有命令
  2. 从基础开始:先熟悉基本的移动和编辑命令
  3. 善用可视化模式:不确定操作范围时可以先用可视模式查看
  4. 养成习惯:坚持使用一段时间后就会形成肌肉记忆

记住:熟能生巧!开始时可能会感觉速度变慢,但随着练习,你的编码效率会显著提升。