一、vim末行模式
1、地址定界
a、:start_pos[,end_pos]
#特定的第#行,例如5即第5行
.:当前行
$:最后一行;
#,#:指定行范围,左侧为起始行,右侧为结束行;
#,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量;
例如:3,+7:表示从第三行开始,然后增加七行。
.,$-1:表示从当前行到倒数第二行
1,$:表示全文,也可以用%表示
/pattern/:从光标所在处开始向文件尾部第一次被这个指定的模式所匹配到的行
/first/,$ :表示从当前光标开始第一次能被first匹配到的行开始到最后一行结束
/pat1/,/pat2/:从光标所在处起始,第一次由pat1匹配到的行开始至第一次由pat2匹配到的行结束之间的所有行
b、可同编辑命令一同使用,实现编辑操作
d
y
c
w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;
r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置
2、查找
/PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串
?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串
n:下一个,与命令方向相同
N:上一个,与命令方向相反
3、查找并替换
a、s末行模式的命令;使用格式:
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用正则表达式
替换为的内容:不能使用正则表达式,但是可以引用;
如果"要查找的内容"部分在模式中使用分组符号,在"替换为的内容"中使用后向引用;
直接引用查找模式匹配到的全部文本
修饰符:
i:忽略大小写;
g:全局替换,意味着一行中如果匹配到多次,则均替换
图中的意思是: 1,20表示定界,即1到20行,后面的s/this/This/表示将this替换成This,不过只会替换匹配到的第一个。如果要每一行中的每一次出现都替换的话需要写成s/this/This/g。如果在替换时不想区分大小写即任何大小写字符的this都替换成This就需要写成 s/this/This/ig
可把分隔符替换为其它非常用字符:
[email protected]@@
s###
示例:替换全文中所有以小写t开头的单词通通替换为大写
%[email protected]\<t\([[:alpha:]]\+\)\>@T\[email protected]
0:33:08
原文地址:https://www.cnblogs.com/Presley-lpc/p/12099447.html