问题标签 [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 投票
2 回答
746 浏览

vim - 使用星号 + 斜杠时 Macvim CSS/Sass 语法高亮错误

我在我的 Sass 样式表中使用了 Compass sprite @import 语句,其中包括目录 ( @import 'place-detail-icons/*.png';) 中的所有 PNG 文件。问题是 Macvim 将 之后的所有内容都/*视为 CSS 注释,因此它将样式表的其余部分显示为注释。

我可以通过/**/在@import 语句下方添加一行来伪造 Macvim 来解决这个问题。但想知道是否有人找到了一种非黑客方法来解决这个问题。这是代码的更大选择。

0 投票
3 回答
269 浏览

vim - 如何有选择地应用语法高亮

我正在用 Vim 编写教程/书籍,我想关闭一段文本(本书的普通文本)的语法突出显示,并为代码示例重新激活它。

我已经用谷歌搜索了无止境,但我找不到一个简单的解决方案。我错过了什么吗?或者这在 Vim 中无法实现?

0 投票
2 回答
259 浏览

vim - 如何在 vim 中为缩进块分配特殊的语法荧光笔?

为了方便对 couchdb 函数进行分组,我创建了一种文件格式,使用 yaml 将单独的事物组合在一起

它基本上包含以下形式的条目,name.ext: | 后跟适合 .ext 的语言的预期代码块

为了更愉快的编辑,我想让 vim 为他们使用正确的语法荧光笔

编辑

根据要求提供一些代码示例

简单的:

更复杂:

0 投票
2 回答
506 浏览

vim - 是否可以让 vim 在我的光标当前所在的括号范围内加下划线?

我知道 vim 有一个彩虹插件,它可以为左括号和右括号着色,我知道 vim 可以突出显示匹配的括号。我希望 vim 在我目前所在的括号范围内强调所有内容。

例如:让 | 为当前光标位置,则:

会强调一切。

只会下划线(de fg)

这甚至可能吗?

0 投票
1 回答
1321 浏览

vim - 如果 vim 仍然选择了错误的语法高亮,我该怎么办?

我在一个始终将 cpp 文件 (*.cc) 识别为tcl文件的系统 (linux) 上。我不知道那是什么文件类型,但我想覆盖它。如果我手动选择正确的语法突出显示:set ft=cpp。但是,我在自动设置时遇到了麻烦,我不想使用该modeline选项。我自己的.vimrc不会干扰(如果我重命名它,结果相同)。

来自 vim 帮助 ( :help ftplugin-override)

我之前在另一台机器上使用过这个选项,并且有效。我试过了

第一行正确设置了filetype:set ft?返回cpp),但是语法高亮和我说的一样:set ft=cpp。它仍然是tcl语法突出显示。第二行什么都不做。

$VIMRUNTIME我的目录中似乎没有/usr/share/vim/vim72/ftplugin/名为tcl.vim.

效果和1一样。还有什么我可以尝试的吗?提前非常感谢。

0 投票
1 回答
80 浏览

vim - Vim 语法区域有序或无序地相互接续

我已经问过一个关于语法高亮的问题,但这似乎(对我来说)有所不同,我在 Stackoverflow 中找不到答案。

1) 假设我想在 Vim 中建立一个 Todo 列表。此待办事项列表应该有任务 + 3 个不同突出显示的“区域”:

  • 任务(例如洗车),总是在开始,应该保持简单的非高亮文本
  • 必须做那件事的人——我自己——前面是@。我希望它以(例如)绿色突出显示
  • 任务的类别 - 这里是家庭 - 以§开头。我希望它是黄色的
  • 任务的重要性——这里稍后——,前面是我要红色的#。

因此结果应该是(一行):

洗车@myself(绿色)§Household(黄色)#Later(红色)

我试图定义第一个以@开头,以§结尾的区域,第二个以§开头并以#结尾的区域,以及第三个以#开头并以$结尾的区域。

无济于事......任务本身之后的所有指示,以@开头,都以绿色突出显示。

我的(不可原谅的)错误是什么?

2)为了让事情更复杂,我可能会乱写任务,写:

洗车@myself(绿色)#Later(红色)§Household(黄色)

应该如何定义语法以考虑到这种缺乏纪律性并保持颜色正确?

提前致谢

0 投票
3 回答
533 浏览

vim - Vim 中的语法高亮冲突(使用关键字时)

0 投票
3 回答
4154 浏览

vim - 根据 vim 中的文件扩展名更改文件类型

我想根据vim.

我的代码中有以下代码.vimrc

但是当我用扩展.md文件打开一个文件时,文件类型没有改变。我运行:set ft命令,它显示输出为filetype=modula2.

我做错什么了吗?

编辑:

我开始通过重命名旧.vimrc文件进行调试,并仅用这一行创建了一个新文件。它工作正常。然后我替换了我的旧.vimrc文件,一切似乎都工作正常。猜猜这是因为我正在使用的某个插件中的一些问题。

但接受 ZyX 的回答,因为它认为我是另一种方式来做到这一点。

0 投票
1 回答
3219 浏览

vim - VIM solarized 中奇怪的背景颜色变化

我不知道如何准确描述这个问题,但是在终端 vim 中使用 solarized colorscheme 主题时,我注意到当我编辑一些文本时,不同的行尾(不是“行尾”,而是从最后一个字母到缓冲区的末尾)将被突出显示。例如,一旦我使用<C-e>, 或移动<C-y>,奇怪的突出显示会自行修复并成为背景颜色。

理想情况下,我想解决这个问题,只是让我的背景始终是背景色。但是,任何关于正在发生的事情/被突出显示的见解都将受到高度赞赏。

谢谢,

在按下后刚​​刚编辑文本之后带有奇怪的突出显示 <C-e> 在此处输入图像描述

0 投票
1 回答
3902 浏览

syntax-highlighting - gVim:删除语法高亮组

原标题是 «特定于语言的颜色方案防止简单的颜色方案为某些特定于语言的标签着色»

我正在使用 gVim 7.3 (在Ubuntu 12.04 Arch x86/64 上,就此而言)

更新(2013-03-02):

我想我终于可以准确地表达我的意思了(我仍然找不到正确的命令,假设它甚至存在!)。基本上这是流程:

  1. 使用定义了几个基本组(如语句、注释、函数)的小尺寸颜色方案开始会话;
  2. 切换到“更大”的配色方案(如 Solarized 或 Jellybeans),它定义了更具体的组(如 vimCommand、hsImport 或 ruby​​BeginEnd)。这些更具体的组覆盖了基本组;
  3. 切换回“较小”的配色方案(未定义特定组的配色方案)。

结果是会议上充斥着“无家可归”的群体,这些群体掩盖了基本的群体,并阻止了一些词被突出显示。这些无家可归的群体如下所示:

输入 :hi vimCommandEnter
输出 vimCommand xxx cleared

顺便说一句,在 Solarized 的 github 问题跟踪器中体验和发布了类似的东西 → Vim 色彩方案在切换时留下了破坏的痕迹


更新(2012-11-25):

一个好的解决方案可能是清除当前会话的“突出显示”变量(我不是在谈论像smartindent, encoding,之类的number变量,而是谈论像Statement, Comment rubyClass,xmlTag之类的变量,即由 , 等命令定义的hi link ...变量highlight ...)。
如果有人能解释它是如何存储在内存中的,它可能会帮助我弄清楚如何清理它(我尝试过保存会话:mksession mysession.vim然后查看它,但没有任何语法高亮变量的痕迹)。

此外,这只是一个模糊的假设,似乎:hi clear不清理突出显示组的原因是“剩余”是通过间接定义(例如hi link)定义的。


原来的:

当我的默认颜色方案(blueshift 的修改版本)被加载时,每个应该突出显示的标签都被正确着色。
在此处输入图像描述

在会话期间,我切换到jellybeans颜色方案 ( :colo jellybeans),它比我的默认颜色方案有更多选项:
果冻豆.vim

如果我再次切换到默认颜色方案 ( :colo blueshifted),则会禁用某些突出显示:
在此处输入图像描述

似乎在会话开始时,如果我使用未指定某些特定语言标签行为的配色方案,则这些标签将使用某些现有颜色自动着色。

我知道jellybeans的特定语言标签保留在“缓存”中,并且负责禁用自动着色功能,因为如果我在没有特定语言标签的颜色方案之间切换(从未使用过jellybeans),自动着色没有被破坏。

其他颜色方案也是如此(例如 railscasts.vim 使用 HTML 特定的颜色)。我知道我可以通过在不太具体的配色方案中添加缺少的标签来解决这个问题,但我正在寻找一个更通用的解决方案。

问题

  • 当在更详细的配色方案之后加载不太详细的配色方案时,我该怎么做才能避免这些自动设置颜色(在加载第一个配色方案时使用)被禁用?

  • 我可以在更改配色方案时清理会话缓存(即从“会话缓存”中删除 jellybeans.vim 使用的特定标签)吗?

我的尝试 这些是我在各种组合中使用的命令,但无济于事:

唯一有效的(显然!)是手动重新定义hi link“简单”颜色方案中缺少的命令。但是,当然这与使用其他颜色方案(如 Solarized)改变颜色并没有什么不同。当然,这不是“如何删除突出显示组剩余部分?”问题的解决方案。