2010-12-07 14 views
1

私はメールとプレーンテキストを書くときにvimfootnotes pluginを使用しています。しかし、LaTeX文書を編集しているときに、キーバインドが多くの問題を引き起こすことが分かりました。私は、プラグインを変更して、ロード時にあるレベルの制御ができるようにしたいと思います。vimプラグインの制御読み込み

私はいくつかのことを試みましたが、最終的にプラグインが関数に登録するキーバインドをラップしてから、その関数を(ftplugin /の)ファイルタイプスクリプトから呼び出すことで、脚注を使う。

これはVimでこれを解決する独特の方法ですか、それとももっと良い方法ですか?

答えて

2

プラグインのソースコードを見た後、私は次のように提案することができます:

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に彼自身のマッピングを設定からプラグインを防ぐことができます。 Second(function + autocommand)は、tex以外のファイルタイプの古いマッピングを設定します。プラグインがロードされる前にファイルタイプのイベントが発生したと確信した場合、最初のセクションは必要ありません。

一般的な解決策ではありません。一般的な解決策は、«プラグインのソースコードを調べて、少し考えてみましょう»。

2

私は認識していません。あなたはこのthreadをチェックアウトしたいかもしれません。私はおそらく、デフォルトでロードされていないパス(例:〜/ .vim/manually_loaded)に入れ、必要に応じていつでもソースを提供するカスタム関数を記述することができます。また、ファイルタイプの自動コマンドでソースを指定することもできますが、両方のタイプを誤って開くと、問題が発生します。

関連する問題