问题标签 [vim-syntax-highlighting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
308 浏览

regex - Vim 正则表达式跳过分隔符

我正在尝试创建一个 vim 语法文件,并且我想匹配以下文本:

基本上,我想匹配oneandtwo作为两个单独的匹配,我不关心threeand four(或它们之后的任何东西)。我也不想@[在表达式的开头包含分隔符。

我尝试对区域执行此操作,如下所示:

不幸的是,这不仅看起来很乱,而且 vim 只会匹配其中一个区域,因为一个包含另一个。

如何为此语法设置匹配,但不包括@[匹配中的开头?

0 投票
1 回答
391 浏览

vim - Vim 语法递归匹配第一个和第二个元素

我正在尝试编写一组语法规则来匹配可嵌套的语法。基本上,在最简单的层面上,一切都是令牌或括号。下面是这种语法的一个例子:

我希望每个“列表”的第一个元素都被着色,所以在这种情况下,a1foobar。我还希望每个列表的第二个元素被着色,但以不同的方式。在这种情况下,b2baz。我不关心其他任何事情。除了空格之外,项目之间没有分隔符。

我怎样才能用 vim 模式系统做到这一点?我设法让一个简单的系统工作,但它处理嵌套列表很差。我遇到的麻烦是分别可靠地匹配每个列表的第一项和第二项,而不会与其他项发生冲突。

有什么帮助吗?

0 投票
1 回答
258 浏览

vim - Vim 不正确地突出显示“非常神奇”和“非常神奇”的正则表达式

我正在.vimvim 本身中编辑一个语法文件,并且我正在使用“非常神奇”和“非常神奇”的正则表达式,只是因为我认为它们更有意义。不幸的是,vim 并没有以任何方式正确地突出显示这些内容。例如,这个正则表达式,使用非常nomagic:

应该匹配一个左括号。不幸的是,vim 认为这是一个未终止的集合,所以它用紫色突出显示文件,直到找到下一个].

有没有办法让 vim 正确突出这些正则表达式模式?

0 投票
2 回答
872 浏览

html - 如何使用 VIM 在 CoffeeScript 中嵌入 HTML 字符串语法?

我已经从vim 中的 javascript 字符串中的 HTML 语法高亮显示中查看了如何在 JavaScript 字符串中嵌入 HTML 语法。

但是,当我使用 CoffeeScript 时,我无法通过coffee.vim以类似方式编辑语法文件来获得相同的效果。我得到了递归错误,其中包括html.vim使它过于嵌套。

我在 CoffeeScript 中有一些 HTML 模板,如下所示:

如何在 VIM 中正确突出显示 CoffeeScript 字符串中的模板 HTML 语法?

0 投票
1 回答
1754 浏览

vim - Vim 中 .gitignore 的语法高亮显示?

有人知道吗?标题中的问题。

0 投票
4 回答
3277 浏览

vim - 文件保存期间语法突出显示随机消失

我正在使用 vim 编辑一些 python 文件,最近在我将缓冲区保存在 vim 后偶尔会出现语法突出显示消失的情况。我试图重置syntax onset filetype=python但无济于事。我根本不知道是什么导致了这个问题,所以现在我的诊断信息很少。但是以前有没有人遇到过这种情况,或者事情可能在哪里发生故障?

0 投票
1 回答
48 浏览

vim - vim 语法脚本“采购”另一个,但仅用于匹配行

我正在编写一个 vim 语法脚本,我希望能够使行匹配某个模式,比如 ' ^>'、“source”或模仿 markdown 语法突出显示。

有没有办法在语法脚本级别做到这一点?我是否需要手动复制并粘贴并进行适当的调整?这是否需要实际文件上的模式行?

谢谢!

0 投票
1 回答
552 浏览

vim - Vim 语法匹配

我正在为我们在 VIM 中使用的专有 C 扩展实现语法高亮。
语法是这样的:

现在我想做的是突出显示 __event(foobar),所以我写了这个:

这会__event()正确突出显示,但是 foobar 中的if(foobar)也会突出显示。

我的问题是如何限制 xFOO 组仅在 xREG 中突出显示,而在其他任何地方都没有。

谢谢你。

0 投票
1 回答
5853 浏览

vim - Vim 隐藏高亮

使用 vim 的隐藏功能set cole=2时,vim 隐藏 cchar 中配置的任何内容的适当文本,并使用 Conceal 组突出显示它。

我的问题是我使用 c/c++ 中的隐藏功能来替换&& ||unicode ⋀ ⋁ 等操作,并且我还在 html 中使用 concel 替换文本实体,例如“ç” 到“ç”。

所以我在 ~/.vim/after/syntax/c.vim

并在 ~/.vim/after/syntax/html.vim

问题是这个设置是全局的。如果我打开 ac 文件,然后打开一个 html 文件,当我回到 c 文件时,Conceal 组会根据最后打开的缓冲区突出显示。

我的问题是:我可以将 Conceal 组设置为使用与 Conceal 不同的东西吗?如果没有,我怎样才能使突出显示特定于当前缓冲区(而不是全局)?

0 投票
1 回答
428 浏览

regex - vim 语法折叠(无意)创建嵌套折叠

我正在尝试将 vim 折叠到现有的喷泉.io 标记语言的语法文件中。现有的语法文件在这里:http ://www.vim.org/scripts/script.php?script_id=3880

但无论我做什么,我的折叠区域都不会在我期望的地方结束。当我在搜索中测试它们时,正则表达式工作得很好。但是当在语法区域中使用时,它们会创建一系列嵌套折叠。折叠从适当的行开始,然后在现有折叠内创建下一个折叠。本质上,我尝试执行以下操作,以便折叠从任何以 INT 或 EXT 开头的行开始,并在一行以 TO: 结尾或以 > 开头的行结束后结束:

更奇怪的是,如果我在我的 'end' 参数上使用 \ze 来获取匹配行之前的行,它会按您的预期工作。它在匹配上方的线上停止折叠,将最后一行留在折叠之外。以下内容将停止折叠到“CUT TO:”行上方

为了排除故障,我基本上是从头开始重建语法文件。这是到目前为止文件中的内容(减去 hi 命令)我已经广泛修改了正则表达式以防止它们相互重叠。原来的正则表达式有这个问题,我认为这可能是原因:

感谢您提供的任何帮助,如果我有任何不清楚的地方,请告诉我。我正在使用带有 python 支持的自定义编译的 MacVim 版本 7.3.646。