所以,我很高兴我在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文件),'Normal'颜色仍然是'normalText'值。
答案 0 :(得分:1)
使用仅针对javascript文件类型
触发的autocmdautocmd FileType javascript execute 'hi Normal ctermfg=' normalText
但是我认为如果你在一个会话中切换多个文件会有问题,因为突出显示是全局的。
要解决此问题,您可以添加另一个FileType autocmd,它在BufEnter(或类似的东西)上触发,设置默认的Normal突出显示。
这样的东西会起作用(虽然当你改变焦点时会改变分裂中的高亮显示)
autocmd BufEnter * if (&filetype ==# 'javascript') | execute 'hi Search ctermfg=' . normalText | else | execute 'hi Search ctermfg=' . defualtText | endif