如何使用Vim为互连的非代码文本创建自己的标记文件?


6

我在vim中编写了一些相互关联的非代码文本,我想生成自己的标签以用于vim标记。

例如,有一个关于“foo”的文件,理想情况下,每当我编辑文件“bar”和“baz”并且单词“foo”出现时,我希望能够点击^]和跳转到foo文件,然后点击^ T然后跳回到我所在的地方。

我有没有办法制作我自己的标签文件,其中“foo”一词指向文件“foo”,依此类推?我检查过的每个源代码都解释了如何使用ctags为sun下的每种编程语言生成标记,但我只想创建一个我自己的简单标记文件。

Answers:


3

如果我理解正确(这是一个资本IF)你正在寻找的是基本的vim帮助功能。你定义一个标签( some_word )很多跳转点(|跳转点|)就是这样。

没有深入细节,我真的建议你浏览一下

:help tags

帮助文件。它会解释很多。我有一段时间没有这样做,但基本上归结为此。您需要定义标签(**),然后将它们引入到vim的标签系统中 :helptags 命令。之后,不要移动它们,并且当使用跳转点时,它将通过已经提到的Ctrl-]和T引导您。

ctags之类的东西不应该让你担心......这完全是vim的功能,它们与它无关(它们只有在代码进入它时才会进入故事......即便如此,在某些情况下,如果你'愿意做一些手工劳动,可以避免)。


还有一个人(博客)在那里他完成了你现在想要做的事,但我找不到它。当我这样做时,我会发布一个链接。
Rook

5
:help tags-file-format

将为您提供有关如何编写标签文件的一些建议。 但你基本上需要以下几行:

tagname TAB tagfile TAB location

地点 可以任何Ex命令;它可以是行号,但通常是搜索模式 /\<foo\>/ 要么 /^Where is foo?$/ 这样每次编辑文件时都不需要重新生成标签。


2

我一直想写一些带有vim帮助中找到的标签功能的文档,但我找不到任何具有简单和特定解决方案的在线内容。因此,对于目前正在寻找快速解决方案的任何人,我将分享我发现的内容。

最快的启动和运行方式:

假设您正在使用空文件夹。

如果您创建一个文件,例如test.txt:

|topic1|
*topic1*

然后运行:

:helptags ./

Vim会在当前目录(./)中生成一个文件(标签),让你从| topic1 |跳转(ctrl +]) to * topic1 *

如果打开标签文件,您可以看到它的简单性:

topic1   test.txt    /*topic1*

格式:

[key word][TAB][file][TAB][command]

您可以将其他标签添加到此文件中,它们将立即生效。

当然,标签的最佳部分是能够跳转到其他文件中的定义,这可以通过更改标签文件中的[file]参数来实现。同样,你需要一个| tag |在父文件中和子文件中的*标记*以使其工作。

如果将标记文件命名为“tags”并且之后在vim中运行:helptags ./,那么从头开始编写标记文件似乎也没有问题。

注意:

正如其他人在本文中提到的那样:帮助是你的朋友。如果你喜欢vim,你应该花一些时间浏览手册,一切都记录完好。如果您不喜欢vim,您仍然可以使用本手册进行快速搜索。根据我的经验,我通常可以通过手册页找到比在线搜索更快的解决方案。请记住以下内容:

/

开始搜索

ctrl+]

跳转到文件/定义

ctrl+o

跳回去

打开后,还会显示这些基本导航命令:help


0

一种简单的标记格式,适用于几乎任何版本的vi / vim, 并且可以手动轻松创建/编辑(仍然使用vim), 是标签的名称,文件路径和行号,由选项卡分隔。

我使用php命令行脚本来扫描我的代码并使用这种格式生成标签,打印行:    “$标记名\ T $文件路径\ T $ lineNo的\ n”; 到标签文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.