一、vim选中多行复制粘贴vim
复制多行并粘贴到指定位置后,可能须要进行多行缩进。多行缩进步骤以下:函数
二、多行注释spa
取消多行注释:一样 Ctrl+v 进入列选择模式,移到光标把注释符选中,按下d,注释就被删除了。命令行
三、撤销code
四、查找替换orm
查找:按下/ 按回车定位到第一个匹配的,n下一个,N上一个,结尾加\c表示大小写不敏感(默认查找是大小写敏感)xml
查找当前单词:normal模式下按下*便可查找光标所在单词(word), 要求每次出现的先后为空白字符或标点符号。例如当前为foo, 能够匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时很是有用。it
按下g*便可查找光标所在单词的字符序列,每次出现先后字符无要求。 即foo bar和foobar中的foo都可被匹配到(至关于/foo)。io
替换::{做用范围}s/{目标}/{替换}/{替换标志},例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,全部出现都会被替换(g)class
做用范围分为当前行、全文、选区等等:当前行 :s/foo/bar/g
替换标记:
空替换标志表示只替换从光标位置开始,目标的第一次出现:
:%s/foo/bar
i
表示大小写不敏感查找,I
表示大小写敏感:
:%s/foo/bar/i # 等效于模式中的\c(不敏感)或\C(敏感) :%s/foo\c/bar
c
表示须要确认,例如全局查找"foo"
替换为"bar"
而且须要确认:
:%s/foo/bar/gc
回车后Vim会将光标移动到每一次"foo"
出现的位置,并提示
replace with bar (y/n/a/q/l/^E/^Y)?
按下y
表示替换,n
表示不替换,a
表示替换全部,q
表示退出查找模式, l
表示替换当前位置并退出。
五、快速移动光标
六、多文件编辑
七、 记录功能
若是文件里有以下内容
stdio.h fcntl.h unistd.h stdlib.h
想把它改为
#include "stdio.h" #include "fcntl.h" #include "unistd.h" #include "stdlib.h"
将光标移动到第一行,而后依次执行以下:
qa 开始将后续的命令记入寄存器a ^ 将光标移动到行首 i#include "<Esc> 在该行以前插入#include " $ 移动到行尾 a"<Esc> 在行尾加上"字符 j 移到下一行 q 中止记录
而后按下@a就能够自动完成第2,3,4行的改变了。