:qa 关闭所有文件:qa! 关闭所有文件,放弃更改:w 保存:wq或:x 保存和关闭文件:q关闭文件:q! 关闭文件,放弃更改ZZ 保存退出ZQ 退出,放弃更改a 追加A 行尾追加i 插入I 行首插入o 插入行O 上方插入行s 删除插入当前字符S 删除行同时插入C 删除到行尾同时插入r 替换单个字符R 替换模式u 撤销Ctrl+R 重做Esc Ctrl+[Ctrl+C 退出插入模式同时终止当前命令x 剪切字符dd 剪切行yy 复制行p 粘贴,对于复制行在下方粘贴,对于字符后方粘贴P 粘贴,对于复制行在上方粘贴,对于字符前方粘贴"*p或"*P 从系统剪贴板粘贴,*与+是与系统剪贴板交互的寄存器,若"*p不行可以尝试"+p,需要确保vim支持剪贴板,可以使用vim --version | grep clipboard查看,出现+clipboard即为支持”*y或+y 复制到系统剪贴板h/j/k/l 左/下/上/右Ctrl+E/Y 滚动上/下一行Ctrl+U/D 滚动上/下半页Ctrl+F/B 滚动上/下一页b/w 前/后一个单词首字母ge/e 前/后一个单词尾字母0 绝对行首(忽略空白)^ 相对行首$ 行尾fc或Fc 向前/后跳转到字符cgg 首行G 末行:n或nG 第n行Ctlr+O/I 上一次位置/撤回[(/[{ 前一个(/{])/]} 后一个)/}[m 方法前一个开始/结束处]m 方法后一个开始/结束处zz 滚动窗口让当前行居中zt 滚动窗口让当前行置顶H/M/L 移动到屏幕顶部/中部/底部:tabedit file 打开一个新tab编辑文件file:tabclose 关闭当前tab:tabs 列出所有tab:tabfirst/:tablast 跳转到第一个/最后一个tab:tabn/:tabp 下一个/上一个tabv 可视化模式V 行可视化模式Ctrl+V 块可视化模式形式如下:
操作符 动作
例子:
dw d是操作符代表删除,w是移动到下一个单词首 ,所以就是删除到下一个单词首db 删除到上一个单词首2dd 删除两行dip 删除一个文本对象(下面有说)操作符列表:
d 删除y 复制(也叫yank)c 修改> 右缩进< 左缩进g~ 变换大小写gU 大写gu 小写形式如下:
操作符 i/a 文本对象
其中操作符是上面提到的,i/a表示:
i inside,仅选择文本,比如文本对象是一个字符串,仅选择字符串内容,不包括包围的单/双引号a around,选择包括文本,包围的字符与周围的空白,比如文本对象是一个[]块,会选择[]里面的内容,同时选中包围的[],如果[]周围有空白也会进行选中文本对象:
p 段落w 单词s 句子[/(/{/< 一个[]/()/{}/<>块 ‘/"/反引号 单/双/反引号字符串t 一个xml标签块例子:
vip 选择段落vipipip 选择更多段落yit 复制一个xml标签块ya" 复制一个"字符串以及包围的"di[ 删除一个[]块的内容ca{ 修改一个{}块以及周围空白
Ctrl+A 数字加1Ctrl+X 数字减1默认识别十进制,使用:set nrformats=bin,octal,hex后,能识别2/8/16进制。
0b或0B开头0开头0x或0X开头g~ 切换大小写gU 大写gu 小写g~~ 整行切换大小写gUU 整行大写guu 整行小写插入模式下,输入Ctrl+R,接着输入=,再输入式子即可计算。Enter获取计算结果,会将计算结果插入到当前光标所在位置。
反引号^ 插入模式的上一次位置反引号. 上一次修改位置反引号反引号 上一次跳转的位置ma 标记当前位置为标记a反引号a 跳转到标记a的位置‘a 跳转到标记a的位置的行首原文:https://blog.51cto.com/14415843/2508836