Vim 命令

Vim 常用操作速查,移动/编辑/搜索/替换/窗口,一键复制

共 41 个脚本

安全移动hjkl

基本光标移动 hjkl

Vim 的核心移动键:h 左、j 下、k 上、l 右。让双手不离开主键位即可完成移动。

安全移动单词

按单词移动 w / b / e

w 跳到下一个单词开头,b 跳到上一个单词开头,e 跳到当前/下一个单词结尾。大写 W/B/E 以空白为分隔(忽略标点)。

安全移动行首

行首 / 行尾 0 ^ $

0 跳到行首第一个字符,^ 跳到本行第一个非空白字符,$ 跳到本行最后一个字符。

安全移动gg

文件首尾 gg / G

gg 跳到文件第一行,G 跳到文件最后一行。前面加数字可跳到指定行,如 42G 跳到第 42 行(也可用 :42)。

安全移动查找

行内查找字符 f / F / t / T

f<char> 向后查找本行下一个指定字符并把光标移到该字符上,F 向前查找,t 移到目标字符前一位,T 反向。; 重复上次查找,, 反向重复。

安全移动段落

段落与配对跳转 { } %

{ 跳到上一空行(段落开头),} 跳到下一空行(段落结尾)。% 在配对的括号 ()[]{} 之间来回跳转,调试代码块时极有用。

安全移动屏幕

屏幕滚动 H M L

H 跳到屏幕顶部,M 跳到屏幕中部,L 跳到屏幕底部。便于快速定位到当前可视区域的不同位置。

安全移动滚动

屏幕滚动 Ctrl-d/u/e/y/f/b

Ctrl-d 向下半屏、Ctrl-u 向上半屏;Ctrl-f 向下整屏、Ctrl-b 向上整屏;Ctrl-e 向下滚一行、Ctrl-y 向上滚一行。zz 把当前行滚到屏幕正中。

安全编辑插入

进入插入模式 i / a / o

i 在光标前插入,a 在光标后追加,o 在下方新开一行并进入插入模式。对应大写 I/A/O 分别在行首/行尾/上方新行。

安全编辑删除

删除 d / x / dd

dd 删除整行,dw 删除到下个单词开头,de 删除到单词结尾,d$ 删除到行尾,x 删除光标处单个字符。大写 D 等同于 d$。

安全编辑修改

修改 c / cc / C

c 是「删除并进入插入模式」。cw 改一个单词,cc 改整行,c$ 改到行尾。大写 C 等同于 c$。

安全编辑复制

复制 y / 粘贴 p

y 复制(yank),yy 复制整行,p 在光标后粘贴,P 在光标前粘贴。Vim 中「删除」的内容也会进入寄存器,可直接用 p 粘贴。

安全编辑替换

替换 r / R

r<char> 替换光标处单个字符,R 进入连续替换模式(覆盖式输入)。比进入插入模式更快的单字符修改。

安全编辑合并

合并行 J / 反转大小写 ~

J 把下一行合并到当前行尾(用空格连接),3J 合并 3 行。~ 反转光标处字符大小写,3~ 反转 3 个字符。

安全编辑撤销

撤销 u / 重做 Ctrl-r

u 撤销上次修改,U 撤销对整行的所有修改,Ctrl-r 重做(redo)。这是 Vim 最基础的安全网。

安全编辑重复

重复上次修改 .

英文句号 . 重复上一次的修改命令(删除、插入、替换等)。Vim 最强大的键之一,配合查找可批量修改。

安全编辑缩进

缩进 >> <<

>> 向右缩进一级,<< 向左缩进一级,== 自动缩进当前行。在可视化模式下对选区用 > < = 可批量调整缩进。

安全搜索search

搜索 / ? * #

/ 向后搜索,? 向前搜索,n 重复上一次搜索方向,N 反向。* 搜索光标下的单词(向后),# 搜索光标下的单词(向前)。

安全搜索大小写

大小写敏感搜索

默认搜索区分大小写。在模式后加 \c 忽略大小写,加 \C 强制区分。也可用 :set ignorecase 全局设置。

安全搜索替换

替换本行 :s

:s/old/new/ 替换本行第一个 old 为 new,加 g 替换本行所有,加 c 每次确认。

注意搜索替换

全文件替换 :%s

:%s 表示对整个文件操作。这是 Vim 最常用的批量替换命令,相当于 sed 的全文替换。

安全搜索替换

按范围替换

:N,Ms/old/new/g 替换第 N 到 M 行之间的内容。也可在可视化模式选中后按 : 自动填入范围 '<,'>。

安全搜索高亮

取消高亮 :noh

搜索后匹配项会一直高亮,:nohlsearch(简写 :noh)临时取消高亮,下次搜索时恢复。

安全可视化visual

字符可视化 v

按 v 进入字符可视化模式,移动光标选中文本。选中后可对其执行 d(删)、y(复制)、c(改)、>(缩进)等操作。

安全可视化visual

行可视化 V

V 进入行可视化模式,整行整行地选中。适合批量缩进、注释、删除多行。

安全可视化visual

列可视化 Ctrl-v

Ctrl-v 进入列(块)可视化模式,可选中一个矩形区域。最强大的功能之一:批量给多行加注释、批量修改某一列字符。

安全可视化操作

可视化模式下的操作

选中后:d 删除、y 复制、c 修改、> 缩进、~ 反转大小写、U 转大写、u 转小写、: 对选区执行命令。

安全保存退出

保存与退出

:w 保存,:q 退出,:wq 保存并退出,:q! 强制不保存退出,:x 保存(有改动时)并退出。ZZ 等同 :x,ZQ 等同 :q!。

安全文件edit

打开文件 :e

:e 打开文件,支持 Tab 补全路径。:e! 放弃当前改动重新载入。

安全窗口分屏

分屏 :split / :vsplit

:split 水平分屏,:vsplit 垂直分屏。Ctrl-w 加 hjkl 在窗口间切换,Ctrl-w 加 +/-/= 调整窗口大小。

安全标签tab

标签页 :tab

Vim 的标签页每个可装多个窗口。:tabnew 新建标签页,gt/gT 切换,:tabclose 关闭。

安全缓冲区buffer

缓冲区 :ls / :b

Vim 把打开过的文件都放在缓冲区。:ls 列出,:b N 切到第 N 个,:bn/:bp 下/上一个。

安全shell外部命令

读写外部命令 :! :r!

:!cmd 执行 shell 命令,:r!cmd 把命令输出插入到光标下方,:.!cmd 用命令输出替换当前行。

注意macro

录制与回放宏 q

q<reg> 开始录制宏到寄存器(如 qa 录制到 a),再按 q 结束。@a 回放宏,@@ 回放上次的宏,5@a 回放 5 次。批量处理重复操作的神器。

安全寄存器register

寄存器 "x

Vim 用寄存器存放文本。"ayy 把整行复制到寄存器 a,"ap 粘贴寄存器 a。:reg 查看所有寄存器。+ 寄存器对应系统剪贴板。

安全标记mark

标记 m

m<x> 在当前位置设置标记 x(如 ma 设标记 a),`<x> 跳回标记位置,'<x> 跳到标记所在行首。大写标记(mA)跨文件有效。

安全跳转jumplist

跳转列表 Ctrl-o / Ctrl-i

Vim 记录跳转历史。Ctrl-o 跳回上一个位置,Ctrl-i(Tab)跳到下一个位置。跨文件跳转也记录。修改大文件时来回查看定义极有用。

安全跳转定义

跳转到定义 gd / gD

gd 跳转到光标下变量的局部定义(同一函数内),gD 跳转到全局定义。配合 tags(ctags)可跨文件跳转。

安全文本对象textobject

文本对象 ci" / da(

文本对象让操作「以结构为单位」。ci" 改双引号内的内容,da( 删除含括号的整块,cit 改 HTML 标签内容。i=inside,a=around。

安全set配置

常用 :set 选项

运行时调整编辑器行为。写入 ~/.vimrc 持久生效。num/ru/ai/hls/is 等是最常配置的选项。

安全帮助help

查看帮助 :help

:help(简写 :h)打开内置文档。可指定主题,如 :h :s 查看 :s 命令的帮助,:h i_ctrl-n 查看插入模式快捷键。