首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有ctag的Vim标记导航:使用'tagbar‘+ 'markdown2ctags’和'vim-pandoc‘

带有ctag的Vim标记导航:使用'tagbar‘+ 'markdown2ctags’和'vim-pandoc‘
EN

Stack Overflow用户
提问于 2019-11-08 00:33:26
回答 1查看 805关注 0票数 2

全,

我希望能够使用Vim 塔格巴插件和markdown2ctags导航我的标记文件。

我无法自动生成标记文件,因为每个:set filetype?的文件类型当前设置为pandoc。这是因为我已经安装了潘多姆插件。但是,如果我将文件类型更改为markdown,那么一切都可以工作。

我控制着两个项目:我的~/.vimrc文件和我的~/.ctags文件。有没有人知道事情该怎么安排?在下面的摘录中,我试着将标价改为pandoc,但这并没有帮助。

编辑:根据@IngoKarkat的评论,因为markdown2ctags正在处理我的tags文件的创建,所以.ctags设置是无关的。

从我的~/.vimrc文件..。(根据标记文件的Tagbar指令设置)

代码语言:javascript
复制
let g:tagbar_type_markdown = {
    \ 'ctagstype': 'markdown',
    \ 'ctagsbin' : '~/.vim/plugged/markdown2ctags/markdown2ctags.py',
    \ 'ctagsargs' : '-f - --sort=yes --sro=»',
    \ 'kinds' : [
        \ 's:sections',
        \ 'i:images'
    \ ],
    \ 'sro' : '»',
    \ 'kind2scope' : {
        \ 's' : 'section',
    \ },
    \ 'sort': 0
\ }

...and我的~/.ctags文件(编辑:未使用,但仍包括)

代码语言:javascript
复制
--langdef=markdown
--langmap=markdown:.mkd
--regex-markdown=/^#[ \t]+(.*)/\1/h,Heading_L1/
--regex-markdown=/^##[ \t]+(.*)/\1/i,Heading_L2/
--regex-markdown=/^###[ \t]+(.*)/\1/k,Heading_L3/

谢谢,

肖恩

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-08 14:56:09

我找到了一些解决这个问题的方法。我已经把它们列在这里以防有人发现它们有用。

解决方案1:将pandoc文件类型重新定义为markdown文件类型

我查看了vim-pandoc pandoc.txt文件,解决方案就在那里。有关资料:

代码语言:javascript
复制
To enable pandoc functionality for markdown files while using  the markdown
filetype and syntax, use
>
     let g:pandoc#filetypes#handled = ["pandoc", "markdown"]
     let g:pandoc#filetypes#pandoc_markdown = 0

Note: vim-pandoc's developers mostly use pandoc's markdown syntax, so
coverage for it is more complete than for the other filetypes.

现在正确设置了文件类型,一切都正常。~/.vimrc应该是(与您自己的ctagsbin路径进行适当的替换):

代码语言:javascript
复制
let g:pandoc#filetypes#handled = ["pandoc", "markdown"]
let g:pandoc#filetypes#pandoc_markdown = 0

let g:tagbar_type_markdown = {
    \ 'ctagstype': 'markdown',
    \ 'ctagsbin' : '~/.vim/plugged/markdown2ctags/markdown2ctags.py',
    \ 'ctagsargs' : '-f - --sort=yes --sro=»',
    \ 'kinds' : [
        \ 's:sections',
        \ 'i:images'
    \ ],
    \ 'sro' : '»',
    \ 'kind2scope' : {
        \ 's' : 'section',
    \ },
    \ 'sort': 0
\ }

解决方案2:定义一个新的pandoc标题栏类型

将以下内容添加到~/.vimrc

代码语言:javascript
复制
let g:tagbar_type_pandoc = {
    \ 'ctagstype': 'pandoc',
    \ 'ctagsbin' : '~/.vim/plugged/markdown2ctags/markdown2ctags.py',
    \ 'ctagsargs' : '-f - --sort=yes --sro=»',
    \ 'kinds' : [
        \ 's:sections',
        \ 'i:images'
    \ ],
    \ 'sro' : '»',
    \ 'kind2scope' : {
        \ 's' : 'section',
    \ },
    \ 'sort': 0
\ }

一切都应该正常!这是我最喜欢的解决方案。

解决方案3:使用内置的pandoc :TOC命令。

vim-pandoc :TOC命令生成一个导航菜单,但是,我不喜欢它以及侧栏标题栏菜单。但它是默认的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58758810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档