我的里面有这个vimrc
:
"on will override defaults set. Enable will allow you to set defaults."
syntax enable
...
"attempting to highlight specific keywords so it is easy to see in code."
"see help e410 for more info."
syn keyword JakeKeywords Question TODO Answer JAKEHTTPS
highlight JakeKeywords cterm=bold term=bold ctermbg=black ctermfg=Blue
(注:为了便于阅读,我已完成所有引述)
我曾尝试插入JAKEHTTPS
关键字:
.java
文件- 在评论中
- 在代码中
.xml
文件- 在评论中
- 在代码中
.jak
文件(我创建的自定义格式见下文)
唯一突出显示关键字的地方是在 中.jak
。
问题:为什么这些关键词没有在 java 代码或 xml 代码(以及其他代码)中突出显示?
~/.vim/ftdetect/jak.vim
:
syn region JakeSubtitle start=+==+ end=+==+
highlight JakeSubtitle ctermbg=black ctermfg=DarkMagenta
syn region JakeTitle start=+===+ end=+===+
highlight JakeTitle ctermbg=black ctermfg=yellow
笔记:我创建此主题但它已经变得过于混乱而无用。
答案1
对于标准文件类型,语法标签在加载之前被清除文件类型.vim语法文件中
可以看到命令,
语法清晰在 java.vim 和 xml.vim 语法文件的开头
只需将 vimrc 中的行更改为如下,
au bufread * syn keyword JakeKeywords 问题 TODO 答案 JAKEHTTPS au bufread * 突出显示 JakeKeywords cterm=bold term=bold ctermbg=black ctermfg=Blue这应该可以正常工作...
答案2
这可能是因为关键字包含在处理所有突出显示的总体区域或匹配区域内。例如,如果您想要突出显示的这些关键字位于注释区域内,则关联的语法文件将设置适用于整个注释行的突出显示,并且不会被注释内的关键字突出显示所覆盖。您已经知道这一点,因为注释行是统一颜色的,常规关键字突出显示不适用于注释。
要修复上述问题,如果它或类似的问题是您的问题,您需要搜索java.vim
语法文件并确保您要突出显示的关键字位于注释区域定义的“包含”子句中(和/或您希望在其中突出显示关键字的所有其他总体区域定义)。
例如,我的 Java 语法文件 ( java.vim
) 中的一个注释区域是这样的:
syn region javaComment start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,@Spell
如果您希望这些关键词在评论区域内突出显示,则需要将关键词添加JakeKeyWords
到上面的包含子句中。或者只需将新关键词添加到javaToDo
组即可,该组已设置为在评论中以特殊突出显示显示。
不确定您要对尝试定义的区域做什么JakeSubTitle
。JakeTitle
与包含相同的问题可能也适用于它们。此外,您要使用“语法匹配”命令来突出显示可以通过单个模式匹配的区域,“区域”仅对于无法通过单个模式匹配的更复杂区域(通常是多行)才是必要的。
答案3
如何设置高亮取决于你如何运行 vim。我猜你是gvim
在 gui 中运行。
如果你在终端中运行 vim,那么你的设置就会起作用,但如果你在运行格维姆,那么您需要使用 guibg 和 guifg。当我使用上面的设置并在 gvim 中运行突出显示测试时,:so $VIMRUNTIME/syntax/hitest.vim
JakeKeywords 没有应用任何特殊格式。当我重新运行测试,但从命令行调用 vim(我现在在 WindowsXP cmd shell 中)时,您的示例杰克关键词例子很有效。
当我改变
highlight JakeKeywords cterm=bold term=bold ctermbg=black ctermfg=Blue
到
highlight JakeKeywords gui=bold guibg=black guifg=Blue
然后我在 gvim 中得到了黑色背景上的蓝色文字。
如果您希望此突出显示同时应用于彩色终端(例如 terminator 或 nautilus)和 gvim,则需要设置突出显示两者:
highlight JakeKeywords gui=bold cterm=bold term=bold ctermbg=black \
ctermfg=Blue guibg=black guifg=Blue