2011-08-02 3 views
9

snipmate + vimを使用している場合、指定された言語/ファイルタイプに多くのスニペットファイルをロードすることが可能ですか? vimで特定のファイルタイプに複数のスニペットファイルを使用できますか?

例: snipmateはjavascript.snippets が付属して、私はまた、MooToolsのスニペットをロードし、私のvimrcにこれを追加しました: autocmd FileType javascript set ft=javascript.mootools

今、私は

    • 株式jsのスニペットを使用することができますmootoolsのスニペット

    私は欲しい3番目のスニペットのセットを追加するにはjavascript.myCustomSnippetsまたのファイルタイプの場合はjavascriptとなります。

    私はそれが/はMooToolsのスニペット、スニペットが働き続けるのjavascriptしかし、デフォルトを無効に上書き autocmd FileType javascript set ft=javascript.myCustomSnippets このような何かを使用して、私のカスタムスニペットを追加してみてください。

    どうすれば実現できますか?

    PS:私はちょうどスニペットは、JavaScriptファイルのデフォルトに私のスニペットを追加することができます知っているが、私は私の.vim/bundle/フォルダ内の同期snipmateのgithubのレポを持っているので、私はライブのレポから独立した個人のものを維持したいです。

    マイソリューション

    ようやく私のファイルを並べて作業してしまった具体的な解決策は、このように私のファイルを構築することでした(ちなみに、私はbundleを自動的にロードするためにpathogenを使用していますdir)

    ~/.vim/bundles/ 
        snipmate.vim/snippets/javascript.snippet 
        vim-snippets.mootools/snippets/mootools.snippet 
        vim-snippets.myCustomSnippets/snippets/javascript.snippets 
    

    私のファイル名を「javascript.snippets」にすると、デフォルトと一緒に自動ロードされます。

  • 答えて

    16

    Ruy Diazは個人的なことについては正しいので、自分のスニペットをすべて "〜/ .vim/snippets"に入れておくことができます.Githubリポジトリに問題はありません。これがうまくいかない場合は、変数g:snippets_dirの値が間違っている可能性があります.Vimファイルに明示的に設定するだけです。

    複数のスニペットを組み合わせる場合は、ExtractSnipsFile機能を使用できます。それは点在するファイルタイプの構文を使いこなすことなく、あなたが望むことをするはずです。

    • javascript.snippets
    • mootools.snippets
    • myCustomSnippets:

      は、あなたが以下の三つのスニペットファイル、スニペットのディレクトリ内のすべてを持っているとしましょう。スニペット

    は「/プラグイン/ snippets.vim後に」ファイルを作成し、その中で次のように配置します。

    call ExtractSnipsFile(g:snippets_dir.'javascript.snippets', 'javascript') 
    call ExtractSnipsFile(g:snippets_dir.'mootools.snippets', 'javascript') 
    call ExtractSnipsFile(g:snippets_dir.'myCustomSnippets.snippets', 'javascript') 
    

    これは、明示的な自動コマンドは必要ありません、javascriptファイルタイプでこれらのスニペットのすべてを関連付けます。詳細については、:help ExtractSnipsFileを試すことができます。

    +0

    Wow。私は 'ExtractSnipsFile'について知らなかった - 非常に便利です。 – bejonbee

    +2

    :これは、最新版のsnipmate([garbas](https://github.com/garbas/vim-snipmate))とPathogenを使用している場合、同じファイル名で複数のスニペットを持つことができます。彼らはすべて読まれるでしょう。複数のタイプがあるかどうかを選択するよう促すメッセージも表示されます。他に何もする必要はありません:) –

    4

    .vimディレクトリ内にスニペットフォルダを作成し、そこにスニペットを配置します。そこにjavascript.snippetsという名前のファイルを作成し、snipmateスニペットとカスタムスニペットの両方を用意する必要があります。

    1

    もちろんです。まず、github.com/MarcWeber/vim-addon-managerを使用して、アップストリームの変更を見逃さないようにします。 M. Sanderの摘発者は、マージリクエストについて電子メールに返信したことがないため、分岐しました。それが私とガールバスがそれを改善した理由です。新しいバージョンはgithub.com/garbas/vim-snipmateにあります。

    ファイルタイプをスニペットファイルに関連付けるために使用できるグローバルなscope_aliases辞書があります。この方法で、js snippetサポートを個人的な好みに基づいてhtmlファイルに簡単に追加できます。さらにいくつかの変更がありますが、私はそれらを繰り返すことに飽き飽きしています。

    0

    あなたが病原体を使用しているのは、カスタムスニペットフォルダをバンドルディレクトリに追加するだけです。例えば:

    ~/.vim/bundles/mySnippets/snippets/php.snippets

    1

    だけさらに参考のため、:H snipMate状態:延び: は、与えられたファイルタイプのスニペットを延びています。

    extends c, cpp, objc 
    

    これには、指定されたファイルタイプのすべてのスニペットが含まれます。 〜/ .vim/snippets/objc.snippetに自分のスニペットファイルを入れてください