为降价创建 ctags 扩展

lan*_*ng2 4 vim markdown ctags

这些天我使用 Vim 编辑了很多 Markdown 文件。我缺少的一件事是基于 ctags 的文件映射,例如 C 中的函数列表。所以我想出了以下 .ctags 文件

--langdef=markdown
--langmap=markdown:.md
--regex-markdown=/^# ([a-zA-Z0-9]+)/\1/
Run Code Online (Sandbox Code Playgroud)

它运行正常,但没有为我的 .md 文件生成有效标签。打开详细模式后,我得到以下信息:

Considering option file /home/wenliang/.ctags: reading...
 Option: --langdef=markdown
 Option: --langmap=markdown:.md
 Setting markdown language map: .md
Option: --regex-markdown=/^# ([a-zA-Z0-9]+)/\1/
Considering option file ./.ctags: not found
Run Code Online (Sandbox Code Playgroud)

我做的有什么问题?

rom*_*inl 6

你的定义看起来不错。

你用什么命令来生成你的tags文件?$ ctags .不会索引任何东西,但$ ctags -R .会。

FWIW,这是您定义的稍微修改版本,它提供了有意义的标签名称和种类信息:

--langdef=markdown
--langmap=markdown:.md
--regex-markdown=/^#[ \t](.*$)/\1/h,heading,headings/
Run Code Online (Sandbox Code Playgroud)

:tselect /<CR>


作为替代方案,您可能对这些更便宜的内置解决方案感兴趣……

它们都生成相同的列表,供您输入:126<CR>

:il /#<CR>

:help :ilist, :help :dlist, :help 'define'