【问题标题】:Highlight Normal only for filetype in vim仅在 vim 中为文件类型突出显示 Normal
【发布时间】:2014-09-10 22:14:22
【问题描述】:

所以,我很高兴我发现了如何在 vim 中打开特定文件时设置突出显示。我正在为 JavaScript 文件执行此操作,因此其中大多数是“hi jsStringD”和“hi jsFunction”等。 我用它来触发它:

if has("autocmd")
  augroup JavaScript
    au!
    au BufReadPost *.js call SetUpJavaScript()
  augroup END
...

我还想更改“普通”或前景文本的颜色,但仅限于 JavaScript 文件。

这可以设置颜色:

execute 'hi Normal ctermfg=' normalText

但我如何将其限制为仅特定的文件类型?这会导致所有文件都以该颜色突出显示“正常”。

编辑:为了澄清,我打开了一个 JavaScript 文件,它可以工作。我打开另一个文件(比如 .jade 文件),“正常”颜色仍然是“正常文本”值。

【问题讨论】:

    标签: vim highlight file-type


    【解决方案1】:

    使用仅针对 javascript 文件类型触发的 autocmd

    autocmd FileType javascript execute 'hi Normal ctermfg=' normalText
    

    但是我认为如果您在一个会话中在多个文件之间切换会出现问题,因为突出显示是全局的。

    要解决这个问题,您可以添加另一个在 BufEnter(或类似的东西)上触发的 FileType autocmd,以设置默认的 Normal 突出显示。


    这样的事情会起作用(虽然当你改变焦点时它会改变拆分中的突出显示)

    autocmd BufEnter * if (&filetype ==# 'javascript') | execute 'hi Search ctermfg=' . normalText | else | execute 'hi Search ctermfg=' . defualtText | endif
    

    【讨论】:

    • 是的,这就是问题所在。在 .JS 文件之后切换到其他文件。 BufEnter 听起来会涵盖某些情况,但我真的很想知道如何涵盖所有或几乎所有情况......
    • 另外,当涉及到文件组时,我不知道如何说“不是 .js 的文件”:)
    猜你喜欢
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    相关资源
    最近更新 更多