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]:窗口切换