0

我有一组通用的命令,我想在几个不同的 Vim 文件类型插件中运行。例如,对于htmlxmlxhtml,有几个我想共同使用的设置。放置此通用代码的最佳位置在哪里,如何将其加载到各个插件文件中?

4

1 回答 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 回答