语法高亮混淆/ vim失败

时间:2018-11-14 22:49:20

标签: javascript regex vim syntax-highlighting

假设您的.js(x)文件中包含以下行,并将VIM用作您喜欢的文本编辑器

if (foundArray = decodeURIComponent(location.hash).toLowerCase().match(/^#\/([0-9a-zäüöß\-_]+)?\/*$/i)) {

该正则表达式的/*部分会导致VIM灰显以下所有行,因为它假定以下所有符号都已注释掉。

有人遇到同样的问题吗?有关变通办法,语法突出显示脚本/插件的任何建议吗?

编辑

我尝试使用最小的vim配置(和vim -u minimalconfig)。结果相同...

minimumconfig的内容:

set nocompatible
filetype on
filetype plugin indent on
syntax on
syntax enable
set background=dark

1 个答案:

答案 0 :(得分:1)

是的,这是对包含的JavaScript语法突出显示的限制。有其他JavaScript荧光笔可以满足这种情况:

它们每个都对JavaScript突出显示进行了其他更改,因此您可能希望同时尝试它们并查看您更喜欢哪个。

或者,重写您的JavaScript以免在正则表达式文字中包含/*,例如通过以下方式之一:

  • {0,}设置为零或更高,而不是*
  • 将模式放入字符串中,并使用Regexp('^#/…', 'i')进行显式构造-/*将位于字符串常量内,这不会混淆荧光笔。