在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Vim是一个文本编辑器,这意味着大量的Vimscript代码将专注于处理文本。 Vim对正则表达式有着强大的支持,尽管一如既往地也有着一些坑。 把下面的文本打到缓冲区中:
这个就是我们将用来测试Vimscript的正则支持的文本。它恰好是Python代码,但不要担心你看不懂Python。 它只是一个例子。 我会假定你懂得基本的正则表达式。如果你不懂, 你应该暂停阅读本书并开始阅读Zed Shaw的Learn Regex the Hard Way。 (译注:暂无中文版,也可选择别的书,或者just Google it) 在你看完后再继续。 高亮在开始之前,先花点时间讲讲搜索高亮,这样我们可以让匹配的内容更明显。
搜索移动你的光标到文件顶部并执行下面命令:
当你逐字母敲打时,Vim开始在第一行高亮它们。当你按下回车来进行搜索时,高亮_所有_的 现在尝试执行下面的命令:
这将移动到文件顶部并开始搜索 要到达文件中的第二处匹配,你仅需在命令的结尾加一点别的。执行这个命令:
Vim将移动光标到缓冲区中的第二个 让我们尝试从反方向开始。执行这个命令:
这次我们用 所有的搜索命令应该已经烂熟于心 —— 我们在让你习惯 魔力(Magic)
Vim抱怨说找不到模式!我告诉过你Vim支持正则搜索,所以为何如此?试试下面命令:
这次Vim高亮"for"循环,如我们一开始所指望的。在继续阅读之前,花一分钟来想想为何如此。 记住 答案在此:我们需要这样写命令的原因有二:
直接在Vim里执行搜索,你很容易就注意到它们的不同,输入下面的命令并按下回车:
现在你可以看到 字面量字符串正如我们在字符串那一章提到的,Vim允许你使用单引号来定义可以直接传递字符的字面量字符串。 比如,字符串 我们可以使用字面量字符串来避免频繁敲打双重反斜杠吗? 先思考这个问题一两分钟,毕竟答案恐怕比你所认为的要更复杂一些。 试试执行下面的命令(注意这次的单引号和单反斜杠):
Vim带你到文件的顶部却不再移动到第一个匹配的地方。你猜对了吗? 命令之所以不能工作,是因为我们需要模式中的 别怕,方法还是比困难多!不要忘了Vim允许字符串连接,所以可以将命令分割成容易理解的一小段。 执行下面的命令:
这种方法可以在传递给 更多的魔力(Very Magic)你可能会好奇Vimscript的四种不同的正则解析模式和它们跟Python,Perl或Ruby中的正则表达式有何不同。 你可以阅读它们的文档,如果你乐意。不过如果你只想找到一种简单科学的解决办法,请继续读下去。 执行下面的命令:
我们又一次把正则表达式放在单独的字面量字符串里,而这次我们用 如果你以 练习认真阅读 阅读 阅读 在你的 加入另一个映射来清除匹配项(比如 加入一个normal模式下的会在进行搜索时自动插入 在你的 阅读 在你的 |
请发表评论