让我们说我有一个文件:memovi.txt(学习vi ...),其中每一行都有相同的结构(命令冒号解释);例如:
dw:从当前光标位置删除到下一个单词
(注意:文字白色,背景黑色)
现在,我想做两件事:
1)以绿色突出显示该命令 我通过定义一个带开始和结束的区域来做到这一点,我用start =≈,end =≈
所以,在我的.vimrc中我有:
:command Tran :source syntax.vim
在我的syntax.vim中,我有:
syn region cTran conceal start='≈' end='≈'
hi cTran ctermbg=Black ctermfg=DarkGreen
2)但我希望,当然,我希望插入一个例子(例如,d4w),并用不同的颜色(洋红色)突出显示它,我想通过将它放在start =•和end =之间来强调它• 带来如下结果:
≈dw≈(因此为绿色):从当前光标位置删除到 下一个字。 •d4w•(因此为品红色):删除4个字
但似乎我无法使用两种不同的“着色”来定义一种语法高亮显示,具体取决于两个不同的开始/结束集。或者我可以吗?
提前致谢
答案 0 :(得分:2)
vim帮助文件语法(help.vim)是此行为的一个很好的模板。它使用栏“|”分隔帮助超链接。然后隐藏吧。
这是syntax.vim,它应该达到你想要的ASCII分隔符|
和=
。我没有用你的Unicode字符对它进行测试,但是我不明白为什么要改变它(尽管我在Unicode的变幻莫测中没有学过它)。
syn match cTransA "|.*|" contains=delimA
syn match cTransB "=.*=" contains=delimB
syn match delimA contained '|' conceal
syn match delimB contained '=' conceal
hi cTransA ctermfg=DarkGreen
hi cTransB ctermfg=Magenta
希望这有帮助。