Vim 带 ctags 的降价导航:使用 'tagbar' + 'markdown2ctags' 和 'vim-pandoc'
Vim markdown navigation with ctags: using 'tagbar' + 'markdown2ctags' with 'vim-pandoc'
全部,
我希望能够使用 Vim Tagbar plugin with markdown2ctags 来浏览我的降价文件。
我无法自动生成标签文件,因为根据 :set filetype?
的文件类型当前设置为 pandoc
。那是因为我安装了 vim-pandoc 插件。但是,如果我将 filtype 更改为 markdown
一切正常。
我可以控制两个项目:我的 ~/.vimrc
文件和我的 ~/.ctags
文件。有没有人知道应该如何设置?我尝试在下面的摘录中将 markdown 更改为 pandoc,但这没有帮助。
编辑:根据@IngoKarkat 的评论,因为 markdown2ctags
正在处理我的 tags
文件的创建,.ctags
设置无关紧要。
来自我的 ~/.vimrc
文件...(根据降价文件的 Tagbar instructions 设置)
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]+(.*)//h,Heading_L1/
--regex-markdown=/^##[ \t]+(.*)//i,Heading_L2/
--regex-markdown=/^###[ \t]+(.*)//k,Heading_L3/
谢谢,
肖恩
我找到了一些解决问题的办法。我将它们列在这里以防有人发现它们有用。
解决方案 1:将 pandoc
文件类型重新定义为 markdown
文件类型
我查看了 vim-pandoc
pandoc.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
命令生成一个导航菜单,但是,我不喜欢它以及边栏标签栏菜单。但它是内置的默认设置。
全部,
我希望能够使用 Vim Tagbar plugin with markdown2ctags 来浏览我的降价文件。
我无法自动生成标签文件,因为根据 :set filetype?
的文件类型当前设置为 pandoc
。那是因为我安装了 vim-pandoc 插件。但是,如果我将 filtype 更改为 markdown
一切正常。
我可以控制两个项目:我的 ~/.vimrc
文件和我的 ~/.ctags
文件。有没有人知道应该如何设置?我尝试在下面的摘录中将 markdown 更改为 pandoc,但这没有帮助。
编辑:根据@IngoKarkat 的评论,因为 markdown2ctags
正在处理我的 tags
文件的创建,.ctags
设置无关紧要。
来自我的 ~/.vimrc
文件...(根据降价文件的 Tagbar instructions 设置)
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]+(.*)//h,Heading_L1/
--regex-markdown=/^##[ \t]+(.*)//i,Heading_L2/
--regex-markdown=/^###[ \t]+(.*)//k,Heading_L3/
谢谢,
肖恩
我找到了一些解决问题的办法。我将它们列在这里以防有人发现它们有用。
解决方案 1:将 pandoc
文件类型重新定义为 markdown
文件类型
我查看了 vim-pandoc
pandoc.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
命令生成一个导航菜单,但是,我不喜欢它以及边栏标签栏菜单。但它是内置的默认设置。