关于vim中的wild card

vim里面的通配符使用分为2种,一种是需要在前面加\的(加了才成为通配符的),一种是不要在前面加\的(不加才成为通配符),比较特殊的还有个magic的vim编辑器选项,开了和不开决定一些符号是不是成为通配符的。

.   在搜索式样中一个半角句号可匹配一个单一的字符,不管是字母还是数字或标点符号。事实上除了换行符(newline)外,“.”可用来匹配任意的ASCII字符。因此要查找“default value”时考虑到它也可能被拼写为“defaultvalue”或“default/value”又或者是“default_value”等等,搜索式样可以用“/default.value/”。当编辑器变量“magic”关闭时,你必须加上反斜杠让句号使用它的元值。

*   星号,结合星号之前的一个字符,可以用来匹配由星号前的那个字符组成的任意长度的字串(包括长度为0的字串)。因此搜索字串“/ab*c/”可以匹配“ac”、“abc”、“abbc”或者“abbbc”,依次类推。(要查找至少包含一个b的字串,可以使用这个搜索字串“/abb*c/”。)如果星号字元紧跟在另一字元之后,则匹配任意长度的前一字元所匹配的字符。这意味着“/a.*b/”将会找到一个在“a”与“b”之间有任意长度(包括长度为0)的任意字符的字串。当编辑器变量“magic”关闭时,你必须加上反斜杠让星号使用它的元值。

^   当脱字符作为搜索式样的第一个字符时表示匹配式样的字串必须是在一行的开头处。它不代表在一行开头处的任何字符(或者说它匹配一行开头空字符)。当它不是一行开头的第一个字符时,它表示的是一个普通的字符(未使用元值)。所以“/^cat/”会找到以“cat”开头的行而“/cat^/”找到包含“cat^”字串的行。

$   当美元符作为搜索式样中的最后一个字符时表示匹配的字串必须在一行的末尾。其余同上。

\<  当一个搜索式样以一个反斜杠接左尖括号开始时,表示从一个“简单”词的开始部分开始匹配。当在式样的其他位置出现时它并不是做为一个字元。(这个编辑器中,一个“简单”词可表示一个或多个数字、字母组成的字串,也可表示一个非数字或字母与任何的非空白字符组成的字串(译者:空白字符表示空格、制表符、换页符等等,所以“shouldn't”包括了三个“简单”词。)“/\<cat/”匹配字串“the cat”或“tom-cat”中的后三个字符,但不会匹配“tomcat”。要移除左尖括号的元值让它成为一个普通的字符,只要去掉前面的反斜杠:“/<cat/”会匹配字串“<cat”,而不管字串前面有什么。

\>  在一个搜索式样的末尾一个反斜杠接右尖括号表示匹配只发生在一个“简单”词的末尾。其余同上。

~   波浪线用来表示substitute命令中的后一个字串,这个命令可以在行模式下输入或在可视模式下通过前置一个半角冒号(“:”)再输入运行。举例而言如果你的上一个替换命令是“s/dog/cat/”那么“/the ~/”搜索式样将会匹配“the cat”。但substitute命令的输入字串自身也能用字元如果你在之前使用其中的一个字元那么搜索式样中使用波浪线会出现错误信息或匹配结果你要的不一致。当编辑器变量magic关闭后,你得加上一个反斜杠才能使用它的元值。

posted @ 2012-02-13 10:40  poiu_elab  阅读(1451)  评论(0编辑  收藏  举报