无论如何让vim显示的内容与文件中的实际文本不同吗?
例如,是否可以使文件包含:
<a href="http://www.example.com">link</a>
Vim显示
提前致谢。
答案 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
组。