像用户手册一样创建vim标签

3
我希望能够像vim用户手册一样,以某种方式在.txt文件之间创建标签。
我已经知道如何生成一个标签文件,并且可以在我的文件之间链接。我想要弄清楚的唯一一件事就是如何让所有的标签都有不同的颜色(就像用户手册中的蓝色),这样它们就容易识别了。
我最好的猜测是,我需要自定义txt文件的语法高亮,但我不确定它如何区分标签和普通文本。
2个回答

3
提取标签及其链接是一件事;你似乎已经解决了这一部分。
要识别和突出显示标签,需要语法规则。如果你的标签样式遵循 Vim 帮助中的样式,标签定义将被 * 字符包围,标签链接将被 | 字符包围。
下面摘自$VIMRUNTIME/syntax/help.vim的内容:
syn match helpHyperTextJump "\\\@<!|[#-)!+-~]\+|" contains=helpBar
syn match helpHyperTextEntry    "\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar
syn match helpHyperTextEntry    "\*[#-)!+-~]\+\*$" contains=helpStar

hi def link helpHyperTextJump   Subtitle
hi def link helpHyperTextEntry  String

如果您将此内容(最好在将help...替换为txt...后)放入自定义的~/.vim/syntax/txt.vim语法脚本中,您可以使用:setf txt激活您的语法(甚至可以通过自定义文件类型检测自动化此过程)。


1
可能更简单的方法是使用:set syntax=help。您可以通过自动命令或模型行来自动化此过程。请参阅:help 'syntax':help autocommand:help modeline - benjifisher
那很简单,benjifisher。不过,能够看到整体情况也很好。感谢你的帮助! - ackshooairy
帮助语法还定义了许多其他的高亮显示。只要您不介意,这确实更容易,但您将被限制于现有的整个语法。 - Ingo Karkat
我的最终解决方案是在 .vim/ftdetect/txt.vim 中添加 txt 文件,然后在 .vim/ftplugin/txt.vim 中添加 setlocal syntax=help(以及其他内容)。这样可以避免我在 .vimrc 中填写自动命令。 - ackshooairy

0

手册中的标签可通过:help命令获得。将您的文本文件与Vim文档混合可能不会有所裨益。

如果您只想在文本文件之间创建链接,可以尝试一些为此目的编写的插件;我建议使用vimwiki插件--它包括多个映射,用于在文本文件上创建/管理链接、列表和标题,并且这些都是通过其附带的语法文件正确突出显示的。

一些替代方案列在vim.org上, 如utl.vim:通用文本链接, Txtfmt(Vim高亮器)TxtBrowser:轻松浏览纯文本


我的意图并不是将我的文件与vim文档混在一起,而是创建一种类似的风格,在其中标记的项只需以蓝色突出显示。正如我所说,我已经成功创建了标签,并且可以使用Ctrl-]和T浏览它们。我希望这可以在不使用插件的情况下实现,就像在文档中一样。 - ackshooairy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接