Skip to main content Table of contents
进入退出 Vim 编辑器
vim 文件名
:进入 vim ESC :q!
:放弃所有改动并退出 ESC :wq
:保存改动并退出
模式切换
ESC
:正常模式 i
:插入模式 v
:视图模式(光标选取) V
:行视图模式(I
多行插入) CTRL-V
:方块视图 R
:替换模式
重复操作 (指令格式:operator
+number
+motion
)
operator
:操作符,比如 d
代表删除,c
代表修改 number
:可以附加的数字,代表动作重复的次数 motion
:在所操作的文本上的移动步长,例如 w
代表单词(word),$
代表行末等等
光标移动
kjhl
:上下左右 b
:到前一个单词头部 w
:到下一个单词头部 ge
:到前一个单词尾部 e
:到下一个单词尾部 0
:到行首 gg
:到文件第一行 $
:到行末 %
:若当前位置是括号,则跳转至配对的括上 gd
:跳转到变量定义处 :$
或G
:到文件最后一行 CTRL-G
:显示当前光标所在位置和文件状态信息 行号
+G
:将光标移动至该行号代表的行 行号
+$
:将光标移动至该行号末尾
插入
i
:在光标前插入文本 I
:在行首插入文本 a
:在光标后添加文本 A
:在行末添加文本 o
:在光标所在行下方插入新行 O
:在光标所在行上方插入新行
删除
x
:删除光标所在位置的字符 d
:删除视图模式下光标选中的部分 d$
:删除光标当前位置到当前行末的部分 dd
:删除整行
撤销
u
:撤销上一个操作 U
:撤销在一行中的改动 CTRL-R
:回退撤销操作
修改
y
:复制视图模式下光标选中的部分 yy
:复制光标所在行 p
:置入已删除或复制的部分 r
:覆盖原位置上的单个字符 ce
:替换光标当前位置到单词末尾的内容 c$
:替换光标当前位置到行末的内容 ~
:修改大小写
查找
/
+字符串
:在当前文档中正向查找该字符串 ?
+字符串
:在当前文档中反向查找该字符串 n
:找到下一个匹配 N
:反向找到下一个匹配 #
:正向搜索当前单词 *
:反向搜索当前单词 CTRL-O
:跳转回较旧的位置 CTRL-I
:跳转到较新的位置
替换 (指令格式::
+range
+s/old/new
+/flag
)
:21s/old/new
:将21行第一个 old 替换为为 new :21s/old/new/g
:将21行所有的 old 替换为 new :5,21s/old/new/g
将5到21行所有的 old 替换为 new :.,21s/old/new/g
将当前行到21行所有的 old 替换为 new :.+4,.+8s/old/new/g
将当前行+4到+8行所有的 old 替换为 new :ls/old/new/g
:将第一行所有的 old 替换 new :$s/old/new/g
:将最后一行所有的 old 替换为 new :%s/old/new/g
:将文件内所有的字符串 old 替换为新的字符串 new :%s/old/new/gc
:进行全文替换时询问用户确认每个替换 :%s/old/new/gi
:进行全文替换时忽略大小写 :%s/old/new/gI
:进行全文替换时敏感大小写
外部指令
:!command
用于执行一个外部命令 command。 :!dir
或:!ls
:用于显示当前目录的内容 :!del FILENAME
或:!rm FILENAME
:用于删除名为 FILENAME 的文件 :w FILENAME
:可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中 - 视图模式下
:w FILENAME
:可将当前编辑文件中可视模式下选中的内容保存到文件 FILENAME 中 :r FILENAME
:可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面 :r !dir
:可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面
设置
:set ic
或:set ignorecase
:查找时忽略字母大小写 :set is
或:set incsearch
:查找短语时显示部分匹配 :set hls
或:set hlsearch
:高亮显示所有的匹配短语 :set noic
:在选项前加上 no 可以关闭选项
窗口
sp
:上下分割窗口 vsp
:左右分割窗口 CTRL-W
+[hjkl]
:窗口切换