1转4的情况:
这两个命令用到了正则表达式,下面以第一个命令为例进行说明。
另外,网上有大量关于perl的正则表达式教程,原理基本相同。其中(?=)即对应为Vim中的\@<=,另一个区别是
:%s/\(^\s*\)\@<=\s\s/ /2转4的情况
:%s/\(^\(\s\s\)*\)\@<=\s\s/ /注意:上述命令中,最后的两个斜杠中间是4个空格
这两个命令用到了正则表达式,下面以第一个命令为例进行说明。
- 这条命令的作用
将每一行开头的每个空格分别替换为4个空格。
- VIM中替换命令的基本结构
:范围s/被替换掉的字符串/替换为的字符串/选项
其中s表示substitute
- 具体说明
% 表示整个文件内容在Vim中使用“:help regex”可以查看关于正则表达式的帮助信息,非常详细。也可以使用这样的命令“:help \@<=”直接找到相关的帮助信息。当然也可以搜索google。
^ 匹配一行的开头
\s 匹配空格
* 表示此符号前面的部分出现0次或多次,例如 \s* 匹配0个或多个空格
\(...\) 表示分组
\@<= 表示此符号之前的部分必须位于匹配结果之前(不准确),称为“向前查看”。 \(^\s*\)\@<= 意为所匹配结果到此行开头什么都没有或只有空格
另外,网上有大量关于perl的正则表达式教程,原理基本相同。其中(?=)即对应为Vim中的\@<=,另一个区别是
# Perl的写法
(?<=查看内容)匹配内容
# Vim的写法
\(查看内容\)\@<=匹配内容
没有评论:
发表评论