文本处理工具(三)
vim末行模式
1.址址定界
:start_pos[,end_pos]起始位置,结束位置
:#跳转至指定的第#行;
:.表示当前行;
:$跳转至最后一行;
:#,#指定行范围,左侧为起始行,右侧为结束行;
:#,+#指定行的范围 ,左侧为起始行绝对编号,右侧为相对左侧行号的编移量;
例如:3,+7表行从第3行开始向后移7行,总计表示8行范围;
:$-1倒数第二行;
:1,$第1行至最后一行,表示文档全部;
:%文档全部;
:/PATTERN/从光标所在处起始向文件尾部第一次被模式所匹配的行;
例如:/first/,$从光标所在位置开始匹配的第一个first至文档最后一行;
:/part1/,/part2/从光标所在处起,第一次由part1匹配到的行开始,至第一次由part2匹配到的行结束之间所有行;
同编辑命令一同使用,实现编辑操作:
d:删除;y:复制;c:修改;
w /PATCH/TO/SOMEFILE:将范围内的内容保存至指定的文件中,另存为的意思;
r /PATCH/FROM/SOMEFILE:将指定文件中的内容读取并向插入至指定位置;
例如:5r /etc/fstab 在文档第5行后面插入fstab文件内容
2.查找
/PATTERN:从当前光标所在处向文件尾部查找能够被当前模式所匹配的所有字符串;
?PATTERN:从当前光标所在处向文件首部查找能够被当前模式所匹配的所有字符串;
n:下一个查找到的匹配字符串,与命令方向相同;
N:上一个查找到匹配字符串,与命令方向相反;
3.查找并替换
s/查找的内容/替换的内容/修饰符,分隔符是可替换的,“‘/”可以替换为任意字符,如s@@@,以避免查找带"/"内容时使用转义符;
查找的内容:可使用正则表达式;
替换的内容:不能使用正则表达式,但可以引用;
引用两种方式:
1.正则表达式分组引用:如果“找查的内容”部分在模式中使用分组符号,在“替换为的内容”中使用后向引用;
例:%s@/<t\(,*\)\+/>@T\1@g
2.直接引用:直接引用“查找到的内容”,使用&符号
例:%s@/<t[[:alpha:]]\+/>@&er@g
&:直接引用查找模式中匹配到的全部文本;
修饰符:i表示查找替换时忽略大小写;g表示全局替换,默认情况查找替换只是每一行第一个被匹配到的模式,使用g后将替换一行中多次匹配到的内容;
浙公网安备 33010602011771号