【问题标题】:ctags, vimwiki, vim and tagbar-pluginctags、vimwiki、vim 和 tagbar 插件
【发布时间】:2011-08-15 20:46:52
【问题描述】:

我尝试为 wiki-file = vimwiki 创建标签。 这是我对ctags的定义,存储为ctags.cnf

--langdef=vimwiki
--langmap=vimwiki:.wiki
--regex-vimwiki=/^=[ \t]+(.*)/\1/h,heading1/
--regex-vimwiki=/^==[ \t]+(.*)/2-\1/h,heading2/
--regex-vimwiki=/^===[ \t]+(.*)/3-\1/h,heading3/
--regex-vimwiki=/^====[ \t]+(.*)/4-\1/h,heading4/

调用ctags --verbose index.wiki 会导致:

...
Considering option file .\ctags.cnf: reading...
  Option: --langdef=vimwiki
  Option: --langmap=vimwiki:.wiki
    Setting vimwiki language map: .wiki
  Option: --regex-vimwiki=/^=[ \t]+(.*)/\1/h,heading1/
  Option: --regex-vimwiki=/^==[ \t]+(.*)/2-\1/h,heading2/
  Option: --regex-vimwiki=/^===[ \t]+(.*)/3-\1/h,heading3/
  Option: --regex-vimwiki=/^====[ \t]+(.*)/4-\1/h,heading4/
Reading initial options from command line
Reading command line arguments
OPENING index.wiki as vimwiki language file
sorting tag file

生成的tags 文件显示如下:

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert  /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME  Exuberant Ctags //
!_TAG_PROGRAM_URL   http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION   5.8 //
2-!KnowledgeBase == index.wiki  /^== !KnowledgeBase ==$/;"  h
2-Dokumentation ==  index.wiki  /^== Dokumentation ==$/;"   h
2-Entwicklung ==    index.wiki  /^== Entwicklung ==$/;" h
2-Essential Tools ==    index.wiki  /^== Essential Tools ==$/;" h
2-TODO ==   index.wiki  /^== TODO ==$/;"    h
2-Vim-Mode in shell / bash /zsh ==  index.wiki  /^== Vim-Mode in shell \/ bash \/zsh ==$/;" h
3-@home === index.wiki  /^=== @home ===$/;" h
3-Clojure ===   index.wiki  /^=== Clojure ===$/;"   h
3-HTML5 & CSS3 ===  index.wiki  /^=== HTML5 & CSS3 ===$/;"  h
3-LaTeX === index.wiki  /^=== LaTeX ===$/;" h
3-Online-Tools ===  index.wiki  /^=== Online-Tools ===$/;"  h
3-Open Source ===   index.wiki  /^=== Open Source ===$/;"   h
3-Vim ===   index.wiki  /^=== Vim ===$/;"   h
3-Wetware ===   index.wiki  /^=== Wetware ===$/;"   h
4-git ====  index.wiki  /^==== git ====$/;" h
4-nosql ====    index.wiki  /^==== nosql ====$/;"   h
Self Org =  index.wiki  /^= Self Org =$/;"  h 

在我的_vimrc 我添加了

let g:tagbar_type_wiki = {
\ 'ctagstype' : 'vimwiki',
\ 'kinds'     : [
\ 'h:headings'
\ ],
\ 'sort'    : 0,
\ 'deffile' : expand('<sfile>:p:h:h') . 'c:\\d\\ctags.cnf'
\ }

打开 index.wiki 和 :TagbarToggle 只会打开一个空标签栏。

我的错误在哪里?

【问题讨论】:

  • 您为 Wiki 文件设置的 filetype 设置是什么? Tagbar 配置假定它设置为wiki,但这真的是set filetype? 报告的内容吗?此外,如果您的 ctags.cnf 位于标准位置,则不需要 deffile 设置,它仅用于附加文件。
  • filetype 是解决方案。 tyvm!
  • 这是一个很老的问题,但仍然在搜索的早期出现。 FWIW 集成 vimwiki 和标签栏的“官方”版本由 vimwiki 开发人员发布here

标签: vim ctags


【解决方案1】:
  • 感谢 Jan Larres 与 :echo &amp;ft 的提示,我找到了解决方案。
  • ctags.cnf 移动到用户配置文件路径也很有用。

我更新的_vimrc

let g:tagbar_type_vimwiki = {
\ 'ctagstype' : 'vimwiki',
\ 'kinds'     : [
\ 'h:header',
\ ],
\ 'sort'    : 0
\ }

还有我更新的ctags.cnf

--langdef=vimwiki
--langmap=vimwiki:.wiki
--regex-vimwiki=/^=[ \t]+(.+)[ \t]+=$/\1/h,header/
--regex-vimwiki=/^==[ \t]+(.+)[ \t]+==$/. \1/h,header/
--regex-vimwiki=/^===[ \t]+(.+)[ \t]+===$/.   \1/h,header/
--regex-vimwiki=/^====[ \t]+(.+)[ \t]+====$/.     \1/h,header/
--regex-vimwiki=/^=====[ \t]+(.+)[ \t]+=====$/.       \1/h,header/
--regex-vimwiki=/^======[ \t]+(.+)[ \t]+======$/.         \1/h,header/ 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2018-06-05
    • 1970-01-01
    • 2011-10-19
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多