Vim快速入门

结城 工具箱 11 次阅读 1106 字 发布于 2026-04-26 预计阅读时间: 5 分钟


Vim 进阶技巧讲义

Opening

在程序员的世界里,编辑器之争一直是个有趣的话题。传说中程序员分三类:用 Vim 的、用 Emacs 的,还有其他。你属于哪一类呢?

技巧一:快速跳转

在日常编码中,我们花费大量时间在浏览和定位代码上,而不是输入新的代码。因此,掌握高效的跳转方法可以极大提升我们的工作效率。

行号跳转

  • ​gg​ - 跳转到文件开头
  • ​G​ - 跳转到文件末尾
  • ​{行号}G​ - 跳转到指定行
  • ​set relativenumber​ - 显示相对行号
  • ​vi +100 filename​ - 打开文件并跳转到第100行

窗口内跳转

  • ​H​ - 跳转到当前窗口首行
  • ​M​ - 跳转到窗口中间
  • ​L​ - 跳转到窗口底部

搜索跳转

  • ​/pattern​ - 向下搜索
  • ​?pattern​ - 向上搜索
  • ​n​ / N​ - 重复搜索
  • ​*​ - 搜索光标下的单词
  • ​#​ - 反向搜索光标下的单词

跳转历史

  • ​:jumps​ - 查看跳转历史记录
  • ​Ctrl-O​ - 跳回上一个位置
  • ​Ctrl-I​ - 跳到下一个位置
  • ​:changes​ - 查看编辑位置历史
  • ​g;​ - 跳到较老的修改位置
  • ​g,​ - 跳到较新的修改位置

标记与跳转

  • ​m{a-zA-Z}​ - 设置标记
  • ​'{mark}​ - 跳转到标记行

技巧二:行内移动

在单行内快速移动光标是提升 Vim 使用效率的关键。

基本移动

  • ​0​ - 跳到行首
  • ​$​ - 跳到行尾
  • ​^​ - 跳到行内第一个非空字符
  • ​g_​ - 跳到行内最后一个非空字符

精确定位

  • ​f{char}​ - 向后查找字符并跳转
  • ​F{char}​ - 向前查找字符并跳转
  • ​t{char}​ - 向后查找字符并跳到其前一个位置
  • ​T{char}​ - 向前查找字符并跳到其后一个位置
  • ​;​ - 重复上次的字符查找
  • ​,​ - 反向重复上次的字符查找

单词移动

  • ​w​ - 移动到下一个单词开头
  • ​e​ - 移动到当前单词结尾
  • ​b​ - 移动到上一个单词开头
  • ​W/E/B​ - 同上,但以空格为分隔符

技巧三:高效编辑

Vim 的强大之处在于其编辑命令的组合能力。

动作命令

  • ​c​ - change (修改)
  • ​d​ - delete (删除)
  • ​y​ - yank (复制)
  • ​v​ - visual (可视化选择)

文本对象

  • ​w​ - word (单词)
  • ​s​ - sentence (句子)
  • ​p​ - paragraph (段落)
  • ​(​ or )​ - 圆括号内的内容
  • ​{​ or }​ - 花括号内的内容
  • ​[​ or ]​ - 方括号内的内容

重复与撤销

  • ​.​ - 重复上次的修改
  • ​u​ - 撤销上次修改
  • ​Ctrl-R​ - 重做(撤销的反向操作)

技巧四:Buffer Windows Tab

Buffer 管理

  • ​:ls​ - 列出所有缓冲区
  • ​:b {number}​ - 切换到指定编号的缓冲区
  • ​:bn​ / :bp​ - 切换到下一个/上一个缓冲区
  • ​:bd​ - 关闭当前缓冲区

Window 操作

  • ​:sp​ - 水平分割窗口
  • ​:vsp​ - 垂直分割窗口
  • ​Ctrl-w h/j/k/l​ - 在窗口间移动
  • ​Ctrl-w =​ - 使所有窗口等宽、等高

Tab 页管理

  • ​:tabnew​ - 创建新标签页
  • ​gt​ / gT​ - 切换到下一个/上一个标签页
  • ​:tabclose​ - 关闭当前标签页

技巧五:寄存器

  • ​:reg​ - 查看寄存器内容
  • ​"ap​ - 粘贴 a 寄存器内容
  • ​q​ - 录制宏
  • ​@​ - 执行宏

技巧六:Vimrc 配置

基础配置

  • 语法高亮
  • 显示行号
  • 设置 Tab 缩进
  • 配置文件编码

快捷键设置

  • ​<leader>v​ - 快速打开配置文件
  • ​<leader>q​ - 强制退出
  • ​<leader>y/p​ - 系统剪贴板复制/粘贴

实用替代键

  • ​Ctrl-[​ - 替代 Esc 键
  • ​ZZ​ - 替代 :wq​
  • ​ZQ​ - 替代 :q!​

技巧七:插件管理

推荐使用 vim-plug 作为插件管理器,常用插件包括:

  • fzf:模糊查找工具
  • vim-easy-align:代码对齐
  • vim-commentary:注释插件
  • vim-gitgutter:显示 git diff 信息
  • tokyonight:配色方案
  • lightline:状态栏插件
  • vim-mucomplete:代码补全
  • SearchComplete:搜索补全
  • matchup:增强 % 跳转功能

Vim 的生态与影响力

Vim 的影响力已经渗透到各种工具中,包括 Neovim、命令行、IDE 和浏览器扩展等。

Ending

Vim 就像开源世界中的一支铅笔,几乎每台类 Unix 系统都预置其中,其理念影响深远。希望大家能够通过学习,找到属于自己的高效编辑方式。

最后,让我们缅怀 Vim 之父 Bram Moolenaar,同时关注他生前致力于的乌干达儿童慈善事业。愿大家在新的一年里效率 MAX,Happy hacking!

给时光以生命,给岁月以文明
最后更新于 2026-06-15