如何使显示的文本与文件中的实际文本不同

时间:2014-01-06 15:08:35

标签: vim vim-plugin

无论如何让vim显示的内容与文件中的实际文本不同吗?

例如,是否可以使文件包含:

<a href="http://www.example.com">link</a>

Vim显示

[link]

提前致谢。

1 个答案:

答案 0 :(得分:2)

是的,有可能。编写一个vim语法文件有点神秘,所以你可能会先看看是否有人写过你想要的东西。例如,尝试http://vim.wikia.com/wiki/Patch_to_conceal_parts_of_lines#Using_Conceal。 (如果片段丢失,则向下滚动到“使用隐藏”部分。在Google和GitHub上快速搜索没有更好的结果。)文档中的起点是

:help conceal

或稍微备份并开始阅读:help :syn-arguments

这个功能在首次推出时颇具争议。最初,Bram拒绝包含它,但现在标准发行版中vim帮助文件的语法文件使用该功能。

我做了一些实验。试试这个。您始终可以添加语法规则;最新的胜利。因此,只要在常规HTML语法文件之后获得:source d,就应该很好。请务必将'conceallevel'设置为默认值以外的值,'concealcursor'对当前行很重要。

syn region htmlLink matchgroup=htmlLinkTag start="<a\>\_[^>]*>" end="</a>" contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
syn match htmlLinkTag "<a\>\_[^>]*>" conceal cchar=[
syn match htmlLinkTag "</a>" conceal cchar=]

我有点害怕这可能会突显htmlLinkTag组。