普通模式
>G 增加当前行到文档末尾处的缩紧层级$ 移动到本行的末尾. 相当于一个很小的宏,记住上次的命令,用来重复执行上一次修改; 重复查找上一次f命令查找到的字符, 和;相反,跳回到上一次查找到的字符: ex命令{ 跳到段首} 跳到段尾( 跳到句首) 跳到句尾~ 转换光标上字符的大小写% 括号匹配/ 在文档里查找下一次匹配:%s/content/copy/g 将全文中的content替换成copy& 回退本行中的替换< 减小缩进> 增加缩进= 自动缩进a 在光标后面插入A 跳到行尾并进入插入模式b 向前移动一个单词,光标停到单词开头B 光标跳到前一个单词c 重复删除多行/多元素,需要配合hjkl来使用,如3cj,2chC 修改至末尾(删除光标到行尾的所以并进入插入模式)d 删除多行,dd删除一行,2dd删除2行D 删除光标所行尾,但不进入插入模式e 跳到单词末尾E 跳到单词末尾f 行内字符查找,fs跳到下一个出现s的位置F 行内字符反向查找,与f的作用查找反向相反g gg跳到文档的第一行G 跳到文档末尾h 右键H 光标跳到屏幕顶行i 在光标之前插入I 到行首插入j 下键J 合并两行k 上键K 帮助,暂时关闭vim切换到命令行l 右键L 光标跳到屏幕底部m 局部标记光标所在位置,具体不知道怎么用M 光标跳到屏幕中间n 查找下一个N 查找上一个o 在下一行插入O 在上一行插入p 粘贴到下一行P 粘贴到上一行q 录制宏,不知道干嘛的Q 切换到ex模式,不知道干嘛的r 取代,ra用a将当前光标所在的字符替换,不进入插入模式R 替换模式,将字符安替换并进入插入模式s 删除当前光标所在的字符并进入插入模式S 删除行并进入插入模式t ti移动光标到当前行,当前光标后面的第一个i前面T 不知道u 撤销上一次操作(全文撤销)U 撤销行内命令v 可视模式,可以直接选择多行V 可视模式w 下一个单词W 下一个单词x 删除光标所在的字符X 退格y yy复制一行,4yy复制4行z 附加命令Z 退出c 重复删除多个数据cw 删除本行从光标开始到结束的字符,并进入编辑模式重新输入dw 删除从光标所在到单词结束的dapw 删除整个单词dpb 删除从光标开始到单词开头的位置
插入模式
删除至行首 = 做数值计算
可视模式
V 面向行的可视模式v 面向字符的可视模式面向列的可视模式gv 重选上次的高亮区域
命令行模式
: 进入命令行模式:edit 读文件:write 写文件:sp 横向分割窗口:vsp 纵向分割窗口:[range]delete x 将range指定的范围的行删除到寄存器x中(用;分割范围,下同):[range]yank x 将range指定的范围的行复制到寄存器x中:[line]put x 将寄存器x中的内容粘贴到line指定的行后面:[range]copy[address] 将range范围内的值拷贝到address指定的行下面:[range]move[address] 将range范围内的值移动到address指定的行下面:1 文件的第一行:$ 文件的最后一行:0 虚拟行,文件的第一行上方:. 代表当前行:![command] 不退出vim执行shell命令,相当于只能执行一次shell命令:shell 启动一个交互的shell会话,结束后输入exit可回到vim:read![command] 在shell中执行command命令,但将结果输出到vim中