VimScript学习笔记(10):正则表达式

一般的编程语言都有正则表达式的功能,对于Vim这种专门处理文本的编辑器来说,正则就更加重要了。在学习这一章节之前,你最好有一些正则表达式的基础。如果没有,可以参考《Learn Regex the Hard Way》来学。

设置高亮

通过下面这条命令,可以打开Vim的高亮设置。这样我们在搜索文本的时候,匹配的文本背景会用高亮的颜色显示。

hlsearch是控制按下回车之后,匹配的文本背景高亮。

incsearch是控制实时刷新匹配的文本高亮。

使用正则搜索

在Vim中,向后搜索按下/,向前搜索按下?。通常会配合executenormal构造字符串命令来执行搜索。

注意在命令中,像+这样的正则符号,需要前面加\进行转义,否则就会解释成字符+,而不是正则上面的含义(好奇怪,.符号默认是正则里面的.而不是符号,+却默认是符号而不是正则)。

而在字符串命令中,转义符号需要先用转义符号将其解释成转义符号,而非符号\。有些绕,举个例子,+在字符串命令中的正则含义需要这样表示: \\+

纯字符串

上一节中我们讨论过纯字符串,在纯字符串(单引号里面的内容)下,就可以不必使用双反斜杠表示转义了。但是需要注意的是,\<cr>这样并不能将其转义成回车。因为这里纯字符串不能解释<cr>。好在,Vim支持字符串拼接。

“魔术时刻”(Very Magic)

太疯狂了是不是,竟然有这么多模式。

如果你对其他语言的正则表达式熟悉的话,可以使用一个叫做Very Magic的模式(就是用\v开头的正则表达式)。

参考这个命令。

我个人比较喜欢这个方案。因为它把命令和正则分开了,而且兼容其他编程语言。

 

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注