1.复制/删除多行
法一:
单行删除,:1(待删除行)d
多行删除 ,:1,10d
法二:
光标所在行,dd
光标所在行以下的N行,Ndd
方法1:
光标放到第6行,
输入:2yy
光标放到第9行,
输入:p
此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。
方法2:
命令行模式下输入
6,9 co 12
复制第6行到第9行之间的内容到第12行后面。
方法3:
有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要删除多行的话,可以用 :5, 9 de
光标放到第6行,
输入:2yy
光标放到第9行,
输入:p
此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。
方法2:
命令行模式下输入
6,9 co 12
复制第6行到第9行之间的内容到第12行后面。
方法3:
有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要删除多行的话,可以用 :5, 9 de
2.
同时打开两个文件,复制内容到另外一个文件
vi file1 file2
yy 同时打开两个文件,在文件1的光标所在处拷贝所在行
:n 切换到文件2 (n=next)
p 在文件2的光标所在处粘贴所拷贝的行
:N 切换回文件1
3.快速复制
vi file1 file2
yy 同时打开两个文件,在文件1的光标所在处拷贝所在行
:n 切换到文件2 (n=next)
p 在文件2的光标所在处粘贴所拷贝的行
:N 切换回文件1
3.快速复制
举例说如果要复制10~30行之间的源码,可以这样子:10ggv30gg,10gg的意思是跳到第10行,如果要复制全部源码,可以ggvG。
4。格式化代码
VIM格式化代码:
格式化全文指令 gg=G
自动缩进当前行指令 ==
格式化当前光标接下来的8行 8=
格式化选定的行 v 选中需要格式化的代码段 =
备注:
gg —— 到达文件最开始
= —— 要求缩进
G —— 直到文件尾
格式化全文指令 gg=G
自动缩进当前行指令 ==
格式化当前光标接下来的8行 8=
格式化选定的行 v 选中需要格式化的代码段 =
备注:
gg —— 到达文件最开始
= —— 要求缩进
G —— 直到文件尾
5.注释连续行:
指令格式 :起始行,终止行s/要替换的字符/替换为字符/g
如,
C++源文件中注释掉10~20行,指令为:
:10,20s/^/g
Python源文件中注释掉10~20行,指令为:
:10,20s/^/#/g
取消连续行注释:
指令格式同上。只是要替换字符与替换为字符要互换:
如,
取消C++源文件中的10~20行的注释,指令为:
:10,20s/^//g
取消Python源文件中的10~20行的注释,指令为:
:10,20s/^#//g
指令格式 :起始行,终止行s/要替换的字符/替换为字符/g
如,
C++源文件中注释掉10~20行,指令为:
:10,20s/^/g
Python源文件中注释掉10~20行,指令为:
:10,20s/^/#/g
取消连续行注释:
指令格式同上。只是要替换字符与替换为字符要互换:
如,
取消C++源文件中的10~20行的注释,指令为:
:10,20s/^//g
取消Python源文件中的10~20行的注释,指令为:
:10,20s/^#//g
6.快速选中一个单词并查找
光标放在单词上,gd 就可以了,然后n 上下查找
或者 # 由下向上查找 * 号由上向下查找