11

我正在尝试编写一个 vim 语法文件,我正在处理的一个问题是 vim 的正则表达式语法与大多数其他语言不同(我认为称为“perl 兼容正则表达式”、Python、JavaScript 等的语言大多使用相同的正则表达式语法),所以我不能使用像正则表达式这样的正则表达式测试器。

尝试 vim 正则表达式的最简单方法是什么?理想情况下,我想要的是两个拆分,一个我会写 vim 正则表达式,另一个会有文本,匹配的部分应该突出显示。

提前致谢。

编辑:我添加了 Ingo Karkat 对我的回答的修改版本.vimrc

nnoremap <F5> mryi":let @/ = @"<CR>`r

这个版本还把光标放回到按 F5 时失去标记的位置r

4

4 回答 4

8

在 Vim 中执行此操作。对于语法文件,你经常处理一些start="^begin"东西。通过 拉取正则表达式yi",然后通过以下方式突出显示它:

:let @/ = @"

当然,如果您经常需要它,请将其绑定到映射(并且:set hlsearch),例如:

:nnoremap <F5> yi":let @/ = @"<CR>
于 2013-01-24T10:38:56.600 回答
5

用于vim测试正则表达式。通过输入/vim您可以搜索东西,搜索使用正则表达式。

有关语法的帮助,请查看vimregex

于 2013-01-24T10:31:48.753 回答
4

我们可以在 Ex 模式或搜索模式下访问 Vim 的寄存器,方法是按Ctrl+R,然后按要粘贴的寄存器。

在您的情况下,我们可以使用它来复制我们要测试的文本,然后将其粘贴到我们的搜索中。

yi"/Ctrl+R0CR

解释:

yi"-> 在双引号内抽出"
/-> 打开搜索字段
Ctrl+R0-> 粘贴最后一个抽出的文本

于 2013-01-28T13:52:49.320 回答
-1

你也可以试试RegExr ,它是学习 RegEx 并实时试用的好工具。

于 2017-05-17T22:24:48.783 回答