为markdown创建ctags扩展名

时间:2014-09-09 10:30:55

标签: vim markdown ctags

这些天我使用Vim编辑了很多降价文件。我遗漏的一件事是基于ctags的C语言中的函数列表等文件的映射。所以我提出了以下.ctags文件

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

它运行正常但不会为我的.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

我做了什么错了?

1 个答案:

答案 0 :(得分:4)

您的定义看起来不错。

您使用什么命令生成tags文件?除了$ ctags .之外,$ ctags -R .不会为任何内容编制索引。

FWIW,这里是您定义的略微修改版本,提供有意义的标记名称和种类信息:

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

:tselect /<CR>


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

  • 使用define选项和:dlist

    :setlocal define=^#\\s*
    :dli /<CR>
    
  • 使用:ilist并且没有设置:

    :il /#<CR>
    

两者都生成相同的列表,您可以输入:126<CR>

:il /#<CR>

请参阅:help :ilist:help :dlist:help 'define'