Vim帮助文档的快键键是:vimtutor
普通模式(Normal mode)
vim打开进入的就是普通模式vim从其他模式进入普通模式按ESC键,可以多次按ESC保存退出:shift zz代码格式优化:shift g光标的移动:H:←J:↓K:↑L:→行首:0,^:移动到行首的非空白字符行尾:$, g_:移动到行尾的非空白字符头部:gg尾部:G一行中的单词移动:w/W移动到下一个word/WORD开头e/E移动到下一个word/WORD结尾b/B移动到上一个word/WORD开头word指的是以非空白符分割的单词WORD指的是以空白符分割的单词一行中的搜索的字符移动f{char} 移动到char字符上,F是从行尾往前搜索t{char} 移动到char字符前,T是从行尾往前搜索分号(;)向后继续搜索逗号(,)向前继续搜索当前行向下移动N行,N+Enter定位:行数 + GH:移动屏幕的顶部M:移动到屏幕的中间L:移动到屏幕的底部ctrl + u:向上翻页ctrl + f:向下翻页zz:让光标的所在行成为屏幕的中间行删除操作删除光标前一个字符:X删除光标后的一个字符:x删除光标后的一单词:dw删除光标前的字符串:d0删除光标后的字符串:d$ 或者 D删除当前行:dd删除当前光标行下的多行:行数 + dd删除当前光标后的字符至指定的字符:dt + 指定的字符撤销:u反撤销:ctrl + r复制:一行:yy多行:行数 + yy粘贴:小p粘贴到光标的下一行大P粘贴到光标的上一行粘贴系统粘贴板中的内容:"+p匹配:*:向前匹配光标所在的单词#:向后匹配光标所在的单词
插入模式(Insert mode)
vim从普通模式切换到插入模式
a:从光标后开始插入
A:从光标所在行的行尾插入
i:从光标前开始插入
I:从光标所在行的行首插入
o:光标下面创建新的一行
O:光标上面创建新的一行
s:删除光标盖住的字符
4s:删除4个字符,并进入插入模式
S:删除光标所在的行
gi:从普通模式快速切换到上次编辑的位置,并进入插入模式
r:替换单个字符,并进入插入模式
R:一直替换字符
cw:删除单词,进入插入模式
C:删除一行进入插入模式
ct+字符:删除到指定的字符,并进入插入模式,和dt+字符用法相似
删除操作:
删除光标前一个字符:ctrl + h
删除光标前一个单词:ctrl + w
删除光标所在当前行:ctrl + u
命令行模式(Command line mode)
进入命令模式的方式
执行命令: :键
搜索命令:/和?键
过滤命令:!键
注:vim执行完命令行就会返回普通模式
保存退出:wq == x
保存不退出:w
退出:q
退出不保存:q
:e!: 放弃修改,重新加载
:e file 在同一个vim窗口加载file文件
:set paste 原格式粘贴
替换:
substitute 命令允许我们查找并且替换掉文本,并且支持正则式
:[range]s[ubstitute]/{pattern}/{string}/[flags]
range 表示范围比如:10,20表示10-20行,%表示全部
pattern是要替换的模式,string是替换后文本
flags:
g(global)表示全局范围内执行
c(confirm)表示确认,可以确认或者拒绝修改
n(number)报告匹配到的次数而不替换,可以用来查询匹配次数
案例:
替换光标所在行:
:s/old/new/gc
替换多行:
:n1,n2 s/old/new/gc
n1,n2表示行数
替换当前文档:
:% s/old/new/gc
统计单词的个数:
:% s/word//n
匹配完成的单词:
:% s/\<word\>/new/g
分屏:
水平分屏:sp
垂直分屏:vsp
退出:q
分屏之间切换:ctrl + ww
退出所有:qall
保存所有:wall
退出保存所有:wqall
分屏另一个文件:sp/vsp filename
同时给多个文件水平分屏:vim -o[filenumber] filenames
同时给多个文件垂直分屏:vim -O[filenumber] filenames
可视模式(Visual mode)
调用的快捷键:v
复制:y
删除:d
粘贴:
小p:粘贴到光标的后面
大P:粘贴到光标的前面
替换:
r:替换光标覆盖的当前字符(一个)
R:替换光标覆盖的当前字符串(多个)
行之间的选择:使用大v进入
