我有一组通用的命令,我想在几个不同的 Vim 文件类型插件中运行。例如,对于html
、xml
和xhtml
,有几个我想共同使用的设置。放置此通用代码的最佳位置在哪里,如何将其加载到各个插件文件中?
问问题
406 次
1 回答
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。
例如,我在以下位置定义了 HTML 的缩写~/.vim/ftplugin/html_abb.vim
:
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 提供了所有的灵活性,由您决定适合您的结构。
于 2014-05-06T14:55:48.903 回答