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