我有一组常见的命令,我想在几个不同的Vim文件类型插件中运行。例如,对于html
,xml
和xhtml
,我想要共同使用几种设置。放置此公共代码的最佳位置在哪里?如何将其加载到各个插件文件中?
答案 0 :(得分:3)
为了重用(缓冲区本地)命令或映射,您可以在(全局)函数中定义它们,并从ftplugin中调用它:
" Put this in your .vimrc, or make it an autoload function.
function SetupCommands()
command! -buffer ...
endfunction
" in your ftplugin script:
call SetupCommands()
或者,只需将它们放入您:source
按需的单独脚本中,例如: ~/.vim/mysetup.vim
:
" in your ftplugin script:
runtime mysetup.vim
然而,您的问题是关于一种特殊的重用形式:XML,HTML和(X)HTML有很多共同之处。没有权威的方式来构建它:HTML是XML的一种形式(但有效性有限),XHTML可能都是 - 一个XML而且是一个HTML。
例如,我在~/.vim/ftplugin/html_abb.vim
中定义了HTML缩写:
inoremap <buffer> <C-CR> <lt>br>
并在~/.vim/ftplugin/xhtml_abb.vim
:
runtime! ftplugin/html_abb.vim
inoremap <buffer> <C-CR> <lt>br/>
使用:runtime
方法,您甚至可以混合搭配:为通用XML定义工具并为HTML继承它们(即使他们可能会抱怨语法),但要定义HTML的缩写并继承它们XHTML,但不是XML。 Vim提供了所有的灵活性,你可以决定一个适合你的结构。