Навигация по разметке Vim с помощью ctags: с помощью 'tagbar' + 'markdown2ctags' с 'vim-pandoc' - PullRequest
1 голос
/ 08 ноября 2019

Все,

Я бы хотел использовать плагин Vim Tagbar с markdown2ctags для навигации по моим файлам уценки.

Я не смог автоматически сгенерировать файл тегов, потому что тип файла для :set filetype? в настоящее время установлен на pandoc. Это потому, что у меня установлен плагин vim-pandoc . Однако, если я изменяю filtype на markdown, все работает.

Я могу контролировать два элемента: мой файл ~/.vimrc и мой файл ~/.ctags. У кого-нибудь есть представление о том, как все должно быть устроено? Я попытался изменить markdown на pandoc в приведенных ниже выдержках, но это не помогло.

Edit : согласно комментарию@IngoKarkat, поскольку markdown2ctags обрабатывает создание моего файла tags, настройки .ctags не имеют значения.

Из моего файла ~/.vimrc ... (устанавливается согласно Инструкции панели тегов для файлов уценки* Спасибо,

Шон

1 Ответ

0 голосов
/ 08 ноября 2019

Я нашел несколько решений проблемы. Я перечислил их здесь на случай, если кто-то найдет их полезными.

Решение 1: Переопределите тип файла pandoc для markdown тип файла

Я посмотрел на vim-pandoc *Файл 1008 * 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 создает навигационное меню, однако я неМне нравится это, а также боковые панели тегов меню. Но это встроенный по умолчанию.

...