Post

Vim 高频操作与效率技巧

2026-05-07

Vim 编辑器常用操作命令指南

概述

Vim 是一款高度可定制的文本编辑器,以其高效的键盘操作和模式切换著称。本文整理了其核心操作命令,涵盖文本编辑、导航、搜索替换、分屏等场景,适用于提升代码编辑效率。所有命令均基于普通模式(Normal Mode)和可视模式(Visual Mode)的默认配置。

核心操作分类

1. 快速文本导航

  • gg:跳转到文件首行
  • G:跳转到文件末行
  • :行号:直接定位到指定行号
  • 0:移动到行首
  • $:移动到行尾
  • w:向前跳转一个单词
  • b:向后跳转一个单词

2. 文本编辑与删除

  • x:删除光标处单个字符
  • dd:剪切当前行
  • dG:删除光标位置到文件末尾的所有内容
  • d1G:删除当前行至文件开头的内容
  • cw:修改当前单词
  • cc:修改整行内容
  • r:替换光标处单个字符

3. 复制粘贴操作

  • yy:复制当前行
  • y$:复制从光标到行尾内容
  • yw:复制当前单词
  • p:在光标后粘贴内容
  • P:在光标前粘贴内容
  • "+y:复制到系统剪贴板(需配置 clipboard 插件)

4. 搜索与替换

  • /keyword:向下搜索关键词
  • ?keyword:向上搜索关键词
  • n:继续查找下一个匹配项
  • N:查找上一个匹配项
  • :%s/old/new/g:全文替换所有匹配项
  • :s/old/new/g:替换当前行所有匹配项

5. 重复与宏操作

  • .:重复上一次编辑操作
  • 数字+命令:如 5dd 删除5行
  • qa...q:将操作序列记录到寄存器a
  • @a:执行寄存器a中的宏
  • @@:重复上次执行的宏

6. 分屏与窗口管理

  • :sp 文件名:水平分割窗口并打开文件
  • :vsp 文件名:垂直分割窗口并打开文件
  • Ctrl+w h/j/k/l:在窗口间移动光标
  • Ctrl+w =:均分所有窗口大小
  • Ctrl+w _:最大化当前窗口高度
  • Ctrl+w |:最大化当前窗口宽度

7. 代码缩进控制

  • >>:向右缩进当前行
  • <<:向左缩进当前行
  • >G:从当前行到文件末尾向右缩进
  • =G:从当前行到文件末尾自动缩进
  • gg=G:对整个文件进行自动缩进

8. 可视化选择模式

  • v:进入字符级选择模式
  • V:进入行级选择模式
  • Ctrl+v:进入块级选择模式(矩形区域)
  • gv:重新选择上次的可视区域

9. 自动补全功能

  • Ctrl+n:向后查找并补全
  • Ctrl+p:向前查找并补全
  • Ctrl+x Ctrl+f:文件名补全
  • Ctrl+x Ctrl+l:整行补全

10. 保存与退出

  • :w:保存当前文件
  • :w 文件名:另存为指定文件名
  • :wa:保存所有打开的文件
  • :wq:保存并退出
  • :x:保存并退出(仅当文件有修改时写入)
  • ZZ:快捷键,等效于 :x

注意事项

  1. 模式切换:所有命令默认在普通模式下生效,需按 Esc 键退出插入模式。
  2. 插件依赖"+y 等系统剪贴板操作需确保 Vim 编译时启用了 clipboard 特性。
  3. 宏录制:录制宏时需注意避免包含不必要的操作(如移动光标指令)。
  4. 分屏限制:垂直分屏可能受终端窗口宽度限制,建议在 120 列以上终端使用。
  5. 缩进规则:自动缩进功能依赖文件类型检测,需确保已加载对应语法插件。

适用边界说明

  • dGd1G 命令适用于需要批量删除大段内容的场景,但需注意光标位置可能影响删除范围。
  • :sp/:vsp 命令在终端环境和 GUI 版本(如 gVim)中的表现可能略有差异。
  • gg=G 自动缩进功能对代码格式要求较高,复杂项目建议配合格式化插件(如 vim-autoformat)。