我正在尝试写一个vim语法文件,我正在处理的一个问题是vim的regex语法不同于大多数其他语言(我认为一个称为“perl兼容regex”,Python,JavaScript等使用大多数相同的regex语法),所以我不能像regexpal一样使用regex测试器。
什么是尝试vim正则表达式的最简单的方法?理想情况下,我想要的是两个拆分,在一个中我将写vim正则表达式,而另一个将有文本,并且匹配的部分应该突出显示。
先谢谢你。
编辑:我在.vimrc
中添加了Ingo Karkat答案的修改版本:
nnoremap <F5> mryi":let @/ = @"<CR>`r
此版本还将光标放回按下F5时的位置,代价是丢失标记r
。
5条答案
按热度按时间xwmevbvl1#
对于语法文件,你经常要处理
start="^begin"
的东西。通过yi"
删除regexp,然后通过:当然,如果您经常需要它,请将它绑定到一个Map(和
:set hlsearch)
,例如:tzdcorbm2#
使用
vim
来测试正则表达式。通过在vim
中输入/
,你可以搜索东西,搜索使用正则表达式。有关语法的帮助,请查看vimregex
w6lpcovy3#
我们可以在Ex模式或搜索模式下访问Vim的寄存器,方法是按Ctrl+R,然后按要粘贴的寄存器。
在您的情况下,我们可以使用它来复制我们要测试的文本,然后将其粘贴到我们的搜索中。
Yi”/Ctrl+旋转
说明:
yi”-〉在双引号
"
内拔出/ -〉打开搜索栏
Ctrl+ R 0-〉粘贴上次拖动的文本
kninwzqo4#
理想解决方案:
https://github.com/bennypowers/nvim-regexplainer
但到目前为止,它似乎只在javascript正则表达式上工作,而不是在vim上。
不错的网站(但没有Vim的regex引擎)
将魔法转换为非常魔法(以避免反斜杠):
https://github.com/sisrfeng/VimRegexConverter
手动拆分成琴弦片段:
与
r7xajy2e5#
您也可以尝试RegExr这是一个学习RegEx并真实的尝试它们的好工具。