Vim语法突出显示隐藏字符

时间:2011-10-11 19:15:09

标签: vim vim-syntax-highlighting

我想为vim实现一个隐藏文件中某些字符的语法文件。具体来说,我想编写一个改进的荧光笔来读取没有显示某些格式化字符的Markdown文件,而是倾向于隐式地指示它们。例如,我希望将*bold*之类的内容简化为带有粗体文字的bold,或者标题为

My Header
=========

不显示下划线,但只显示不同的颜色。到目前为止,我还没有设法找到任何隐藏显示特定字符​​的vim语法文件的例子。这是vim可能的吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:12)

要隐藏语法项 - 或仅隐藏某些字符 - 可以使用隐藏或忽略参数。见

:help hl-Ignore
:help syn-conceal

有关示例,请参阅语法文件“help.vim”,它是crefvim的一部分。 CRefVim是一个嵌入Vim帮助系统的C参考手册。 “help.vim”语法文件扩展了帮助文件的标准语法高亮显示。

一个例子。这里使用'$'字符以斜体显示文本:

example on how to use Ignore syntax argument, help.vim

也许这个例子是你进一步挖掘的好起点......

哈比

答案 1 :(得分:1)

你可以用相应的colortheme制作你自己的语法文件,使用“粗体”,“斜体”等。它不会隐藏任何内容,因此您的语法必须与原始文本一起使用。 例如,这可能是标题

的语法

在您的语法中,您需要:

syn match Header '^\s*\u*\.\s.*$'  contains=ALL
hi link Header   ModeMsg

和colortheme

hi ModeMsg gui=bold guifg=NONE guibg=NONE cterm=bold ctermfg=NONE ctermbg=NONE term=bold

然后像这样的标题

1. This is my new header, being bold

将显示为粗体,没有任何标记。顺便说一句,您可以使用TOhtml功能导出它,同时保持突出显示。