Контроль загрузки плагинов vim - PullRequest
1 голос
/ 07 декабря 2010

Я использую плагин vimfootnotes при написании электронных писем и простого текста.Однако я обнаружил, что его привязки клавиш вызывают много проблем при редактировании документов LaTeX.Я хотел бы изменить плагин так, чтобы у меня был некоторый уровень контроля над его загрузкой.

Я пробовал несколько разных вещей, но в конце я обернул комбинации клавиш, которые плагин регистрирует взатем вызываю эту функцию из сценариев файловых типов (в ftplugin /) для файловых типов, где я хочу использовать сноски.

Является ли это уникальным способом решения этой проблемы в Vim или есть лучший способсделать это?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2010

После просмотра исходного кода плагина могу предложить следующее:

inoremap <Plug>Dummy1 <Plug>AddVimFootnote
nnoremap <Plug>Dummy1 <Plug>AddVimFootnote
inoremap <Plug>Dummy2 <Plug>ReturnFromFootnote
nnoremap <Plug>Dummy2 <Plug>ReturnFromFootnote

function s:FootnoteMaps()
    if &filetype!=#'tex'
        inoremap <buffer> \f <Plug>AddVimFootnote
        nnoremap <buffer> \f <Plug>AddVimFootnote
        inoremap <buffer> \r <Plug>ReturnFromFootnote
        nnoremap <buffer> \r <Plug>ReturnFromFootnote
    else
        inoremap <buffer> #f <Plug>AddVimFootnote
        nnoremap <buffer> #f <Plug>AddVimFootnote
        inoremap <buffer> #r <Plug>ReturnFromFootnote
        nnoremap <buffer> #r <Plug>ReturnFromFootnote
    endif
endfunction
autocmd Filetype * call s:FootnoteMaps()

Сначала создает фиктивные сопоставления, которые никогда не будут срабатывать, но не позволит плагину устанавливать свои собственные сопоставления на <Plug>AddVimFootnote и <Plug>ReturnFromFootnote. Второй (функция + автокоманда) настроит старые отображения для типов файлов, отличных от tex. Если я был уверен, что событие filetype запускается до загрузки плагина, тогда первый раздел не потребуется.

Обратите внимание, что это не претендует на универсальное решение. Общим решением будет «изучить исходный код плагина и немного подумать».

2 голосов
/ 07 декабря 2010

Не то, что я знаю.Возможно, вы захотите оформить эту тему .Я мог бы, вероятно, поместить его в путь, который не загружен по умолчанию (например, ~ / .vim / manual_loaded), и написать пользовательскую функцию для получения источника в любое время, когда это необходимо.Вы также можете получить его с помощью автокоманды для типа файла, но если вы откроете оба типа случайно, это вызовет проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...