假设您在.js(x(文件中有以下行,并使用VIM作为您最喜欢的文本编辑器
if (foundArray = decodeURIComponent(location.hash).toLowerCase().match(/^#/([0-9a-zäüöß-_]+)?/*$/i)) {
该正则表达式的/*
部分将导致VIM灰显以下所有行,因为它假定以下所有符号都已注释掉。
有人经历过同样的问题吗?有什么关于变通方法、语法突出显示脚本/插件的建议吗?
编辑
我尝试使用最小的vim配置(和vim -u minimalconfig
(。相同的结果。。。
最小配置的内容:
set nocompatible
filetype on
filetype plugin indent on
syntax on
syntax enable
set background=dark
是的,这是所包含的JavaScript语法高亮显示的限制。有其他JavaScript荧光笔可以满足这种情况:
- vim javascript插件
- JavaScript语法文件
它们还对JavaScript高亮显示进行了其他更改,所以您可能想同时尝试它们,看看您喜欢哪一个。
或者,重写您的JavaScript以避免在regexp文本中包含/*
,例如通过以下操作之一:
- 使用
{0,}
表示零或更多,而不是*
- 将模式放入字符串中,并用
Regexp('^#/…', 'i')
显式构造它——然后/*
将位于字符串常量内,这不会混淆荧光笔