いくつかの異なる Vim ファイルタイプ プラグインで実行したい共通のコマンド セットがあります。たとえば、html
、xml
、 などxhtml
、共通して使いたい設定がいくつかあります。この共通コードを配置するのに最適な場所はどこですか?また、個々のプラグイン ファイルにどのようにロードすればよいですか?
1 に答える
一般的な共有コード
(バッファローカル) コマンドまたはマッピングを再利用するには、それらを (グローバル) 関数で定義し、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 はすべての柔軟性を提供します。うまく機能する構造を決めるのはあなた次第です。