带有 ctag 的 Vim 降价导航:将 'tagbar' + 'markdown2ctags' 与 'vim-pandoc' 一起使用



全部,

我希望能够使用带有markdown2tag的Vim Tagbar插件来导航我的markdown文件。

我无法自动生成标记文件,因为文件类型,每个:set filetype?当前设置为pandoc。这是因为我安装了vim-pandoc插件。但是,如果我将过滤器类型更改为markdown,则一切正常。

我可以控制两个项目:~/.vimrc文件和~/.ctags文件。有人知道应该如何设置吗?在下面的摘录中,我尝试将markdown更改为pandoc,但无济于事。

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

从我的~/.vimrc文件。。。(根据降价文件的标签栏说明设置(

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
 }

和我的~/.ctags文件(编辑:未使用,但仍包含(

--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/

谢谢,

Sean

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

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

我查看了vim-pandocpandoc.txt文件,解决方案就在那里。相关信息:

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路径(:

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

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命令生成一个导航菜单,但是,我不喜欢它以及侧边栏标签栏菜单。但它是一个内置的默认值。

最新更新