我在使用vimfootnotes plugin編寫電子郵件和純文本時。不過,我發現在我編輯LaTeX文檔時,它的鍵綁定會帶來很多麻煩。我想修改插件,以便在加載時有一定程度的控制權。控制加載vim插件
我已經嘗試了幾個不同的東西,但最終我包裝了插件在函數中註冊的鍵綁定,然後我從filetype腳本(在ftplugin /中)爲該文件類型調用了該函數,使用腳註。
這是一種在Vim中解決這個問題的特殊方式,還是有更好的方法來做到這一點?
我在使用vimfootnotes plugin編寫電子郵件和純文本時。不過,我發現在我編輯LaTeX文檔時,它的鍵綁定會帶來很多麻煩。我想修改插件,以便在加載時有一定程度的控制權。控制加載vim插件
我已經嘗試了幾個不同的東西,但最終我包裝了插件在函數中註冊的鍵綁定,然後我從filetype腳本(在ftplugin /中)爲該文件類型調用了該函數,使用腳註。
這是一種在Vim中解決這個問題的特殊方式,還是有更好的方法來做到這一點?
查看插件的源代碼後,我可以建議如下:
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事件,則不需要第一部分。
請注意,它並不假裝是一個通用的解決方案。通用解決方案將「檢查插件的源代碼並思考一下」。
不是我所知道的。您可能想要結帳這thread。我可能會把它放在一個默認不加載的路徑中(例如〜/ .vim/manually_loaded),並編寫一個自定義函數以在需要時獲取它。您也可以在文件類型上使用自動命令來源,但如果在意外中打開這兩種類型,則會導致問題。