2011-10-11 69 views
5

我想为vim实现一个语法文件,该文件隐藏文件中的某些字符。具体来说,我想编写一个改进的荧光笔来阅读Markdown文件,它不会显示一些格式化字符,而是倾向于隐式指示它们。例如,我想有类似的东西呈现*bold*简单地bold以大胆的文字,或有标题像Vim语法突出显示隐藏字符

My Header 
========= 

没有表现出应有的下划线,而只是出现不同的颜色。我还没有设法找到任何可以隐藏显示中特定字符的vim语法文件的例子。这在vim中是可行的吗?如果是这样,怎么样?

+5

我不能把手指放在它上面,但这听起来像一个可怕的想法。 Vim用于编辑文本,而不是将其渲染掉(当然,除了折叠)。 – Bradford

+1

如果你想Wysiwyg体验寻找插件,使浏览器窗口与编辑的降价文档同步。我不记得它是哪一个,但之前曾经讨论过 – sehe

回答

10

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

: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

你可以使用“粗体”,“斜体”等来创建自己的语法文件,并使用相应的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功能导出它,同时保持突出显示。