Vim 是一款功能强大但学习曲线陡峭的文本编辑器,核心在于其模式化操作。掌握常用指令能极大提升效率。以下是指令分类整理:
一、核心模式切换 (必须掌握!)
i:在光标前进入插入模式 (Insert Mode)a:在光标后进入插入模式 (Insert Mode)o:在下方新建一行并进入插入模式O:在上方新建一行并进入插入模式ESC或Ctrl+[:退出当前模式,回到普通模式 (Normal Mode)- 最常用!v:进入可视模式 (Visual Mode)(字符选择)V:进入可视行模式 (Visual Line Mode)(行选择)Ctrl+v:进入可视块模式 (Visual Block Mode)(列块选择)::进入命令行模式 (Command-Line Mode)
⚠️ 牢记:大部分时间你在
普通模式! 编辑完记得按ESC返回普通模式。
二、移动光标 (普通模式下)
基本移动:
h←,j↓,k↑,l→ (或方向键)w/W:跳到下一个单词开头 (W忽略标点)b/B:跳到上一个单词开头 (B忽略标点)e/E:跳到当前/下一个单词结尾 (E忽略标点)0(零):跳到行首^:跳到行首第一个非空白字符$:跳到行尾gg:跳到文件第一行G:跳到文件最后一行:[行号]+回车:跳到指定行 (如:10跳到第10行)Ctrl+f:向下翻页Ctrl+b:向上翻页Ctrl+d:向下翻半页Ctrl+u:向上翻半页H:跳到当前屏幕顶部M:跳到当前屏幕中间L:跳到当前屏幕底部
查找移动:
/+关键词+回车:向下搜索关键词 (如/hello)?+关键词+回车:向上搜索关键词n:查找下一个匹配项N:查找上一个匹配项f+字符:将光标移动到当前行下一个指定的字符上 (如fa找下一个a)F+字符:将光标移动到当前行上一个指定的字符上t+字符:将光标移动到当前行下一个指定的字符前T+字符:将光标移动到当前行上一个指定的字符后%:在配对的括号(),[],{}之间跳转
三、编辑文本 (普通模式下)
删除:
x:删除光标下的字符X:删除光标前的字符dw:从光标位置删除到下一个单词开头d$或D:从光标位置删除到行尾d0:从光标位置删除到行首dd:删除整行[数字]dd:删除从光标开始的指定行数 (如3dd删除3行)daw:删除光标所在的单词 (包括周围空格)diw:删除光标所在的单词 (不包括周围空格)
复制 (yank):
yy:复制整行[数字]yy:复制从光标开始的指定行数 (如3yy复制3行)yw:复制从光标到下一个单词开头的文本y$:复制从光标到行尾的文本y0:复制从光标到行首的文本
粘贴 (put):
p:在光标后粘贴P:在光标前粘贴
撤销/重做:
u:撤销上一次操作Ctrl+r:重做 (撤销掉撤销)
修改/替换:
r+字符:替换光标下的字符 (如ra替换成a)R:进入替换模式 (连续替换多个字符,按ESC退出)cw:删除从光标到单词结尾并进入插入模式 (Change Word)c$/C:删除从光标到行尾并进入插入模式cc/S:删除整行并进入插入模式s:删除光标下的字符并进入插入模式~:切换光标下字符的大小写
缩进:
>>:当前行增加缩进<<:当前行减少缩进=:自动缩进当前行 (或选中的行/块)
四、可视模式操作 (先按 v, V, Ctrl+v 选中)
选中文本后,可以使用普通模式下的编辑命令:
d/x:删除选中文本y:复制选中文本c:删除选中文本并进入插入模式>:增加缩进<:减少缩进=:自动缩进u:将选中文本转为小写U:将选中文本转为大写
五、命令行模式 (按 : 进入)
文件操作:
:w:保存文件:w [文件名]:另存为到指定文件名:q:退出 Vim (如果文件未修改):q!:强制退出 Vim (不保存修改):wq或:x或ZZ:保存并退出:e [文件名]:打开另一个文件进行编辑
搜索与替换:
:%s/old/new/g:全局替换所有old为new:%s/old/new/gc:全局替换,每次替换前询问确认:s/old/new/g:替换当前行的所有old为new:起始行,结束行s/old/new/g:替换指定行范围的所有old为new(如:10,20s/foo/bar/g)
其他常用:
:set nu:显示行号:set nonu:隐藏行号:set hlsearch:高亮显示搜索结果:set nohlsearch或:nohl:关闭搜索结果高亮 (临时):help [命令]:查看帮助 (如:help w):! [shell命令]:执行外部 shell 命令 (如:! ls):r [文件名]:读取文件内容并插入到光标后:r ! [shell命令]:读取 shell 命令的输出并插入到光标后 (如:r ! date)
六、组合与重复
操作符 + 动作 = 强大功能
d(删除) +w(单词) =dw(删到单词尾)c(修改) +$(行尾) =c$(修改到行尾)y(复制) +}(下一段) =y}(复制下一段)
数字前缀:重复执行
5j:向下移动5行3dw:删除3个单词10x:删除10个字符4p:粘贴4次
七、实用技巧
.(点命令): 重复上一次的编辑操作 (在普通模式下)。宏录制:
q+寄存器字母(如qa):开始录制宏到寄存器a执行一系列操作
q:停止录制@+寄存器字母(如@a):执行存储在寄存器a中的宏@@:重复执行上一次执行的宏
分屏:
:sp [文件名]:水平分割窗口 (打开/切换文件):vsp [文件名]:垂直分割窗口 (打开/切换文件)Ctrl+w+方向键/h/j/k/l:在窗口间切换焦点Ctrl+w+w:循环切换窗口Ctrl+w+c:关闭当前窗口Ctrl+w+q:关闭当前窗口 (如果只剩一个窗口则退出Vim)Ctrl+w+=:使所有窗口等宽等高Ctrl+w+_:最大化当前窗口高度Ctrl+w+|:最大化当前窗口宽度
标签页:
:tabnew [文件名]:在新标签页打开文件gt/gT:切换到下一个/上一个标签页:tabn/:tabp:切换到下一个/上一个标签页 (命令模式):tabc:关闭当前标签页
八、配置 (~/.vimrc)
创建或编辑
~/.vimrc文件来自定义 Vim 行为。常用设置示例:set number " 显示行号 set relativenumber " 显示相对行号 (可选) syntax on " 语法高亮 set tabstop=4 " Tab键宽度为4空格 set shiftwidth=4 " 自动缩进宽度为4空格 set expandtab " 将Tab转换为空格 set autoindent " 自动缩进 set smartindent " 智能缩进 set hlsearch " 高亮搜索结果 set ignorecase " 搜索忽略大小写 set smartcase " 如果搜索包含大写则区分大小写 set mouse=a " 启用鼠标支持 (可选)
学习建议
先掌握核心: 模式切换 (
i,ESC)、保存退出 (:wq,:q!)、基本移动 (hjkl)、删除 (x,dd)、复制粘贴 (yy,p)、撤销 (u)。这是生存技能。练习移动: 高效移动是Vim的灵魂。熟练掌握
w,b,e,$,0,gg,G,/。理解
操作符 + 动作范式: 这是Vim编辑能力的核心 (d,c,y+w,$,t等)。逐步学习: 不要试图一次记住所有命令。在日常编辑中刻意练习新学的1-2个命令。
善用帮助:
:help是宝藏。遇到不熟悉的命令随时查 (:help x,:help :w等)。使用 Vim Tutor: 在终端中输入
vimtutor,这是官方交互式教程,强烈推荐初学者完成。
Vim 的精髓在于组合和效率。 熟练后,你的手指几乎不用离开主键盘区就能完成复杂编辑。