html.erb ファイルにいるとき、snipMate スニペットを取得できません。
HTML と Ruby の両方が欲しいのですが、HTML だけでもいいのですが、どうすればよいですか?
スニペットのセットを作成する必要がありますか?
もしそうなら、既存のスニペットをコピーせずに取り込む方法はありますか?
.html erb を見たときに vim に html モードになるように指示する方法はありますか?
html.erb ファイルにいるとき、snipMate スニペットを取得できません。
HTML と Ruby の両方が欲しいのですが、HTML だけでもいいのですが、どうすればよいですか?
スニペットのセットを作成する必要がありますか?
もしそうなら、既存のスニペットをコピーせずに取り込む方法はありますか?
.html erb を見たときに vim に html モードになるように指示する方法はありますか?
を使用しautocmd
て、「.html.erb」ファイルを開くときにファイルタイプを html に設定できます。これは、「.erb」ファイルで動作するプラグインに望ましくない副作用をもたらす可能性があります。
autocmd BufNewFile,BufRead *.html.erb set filetype=html
ドット付きファイルタイプを使用して、複数のスニペット セットを読み込むこともできます。
autocmd BufNewFile,BufRead *.html.erb set filetype=html.eruby
詳細について:help snippet-syntax
は、snipMate のヘルプを参照してください。
スニペットはsnippets
、フォルダー内のどこかにあるというディレクトリに保存され~/.vim
ます。
そこを見ると、通常、ファイルタイプごとに 1 つのファイルがあり、c.snippets、ruby.snippets があるため、必要なもので erb.snippets を作成する必要があるようです。
最終的に、ruby.snippets と html.snippets の内容を新しい erb.snippets にコピーできます。
別の方法として、github で検索することもできます。独自の erb.snippets 構成を投稿している人もいます。たとえば、素敵なコレクションがあります: https://github.com/scrooloose/snipmate-snippets
最初にスニペット ファイルを開いて構文を確認することをお勧めします。最もよく使用するものに応じて独自のスニペットを作成するのは非常に簡単です。
私は現在、StackOverflowでUltiSnipsのプロモーション ツアーを行っています。UltiSnips は他のファイル タイプの拡張をサポートしています。erb.snippets は次のようになります。
extends html, ruby, rails
snippet temp "A snippet only in Erb"
erb rules ${1}
endsnippet
snipMate スニペットの変換スクリプトは UltiSnips に同梱されているため、切り替えは簡単です。
autocommand メソッドを使用してファイルタイプを設定しましたが、次のような html 構文エラーが発生しました。
<%= image_tag("logo.png", :alt => "Sample App", :class => "round") %>
最後の 2 つの山かっこは赤で強調表示され、私はおかしくなりました。そこで、html.snippets を指す eruby.snippets というシンボリック リンクを作成しました。これはチャンピオンのように機能し、今では 2 つの場所を変更する必要はありません。HTML以外のerubyスニペット用のeruby-railsスニペットディレクトリもあります。
これは Mac OS X システム上にあります。エイリアスは機能しないことに注意してください。ターミナルにアクセスして、ln コマンドを使用する必要があります。Windoze システムでこれを行うかどうかはわかりません。
1つのファイルタイプに複数のスニペットスコープを割り当てることができます。(ファイルタイプを変更すると、構文の強調表示が壊れてしまう傾向があることがわかりました)。
erbファイルのファイルタイプが実際に「eruby」であることを確認するには、次のようにします。
:set filetype?
snipmateの維持されたフォークを使用している場合は、snipmate-snippetsリポジトリ(honzaが所有)からeruby.snippetsとeruby-rails.snippetsの両方が必要になるようですが、リンクするのに十分な評判がありませんここに)(適切なセットアップについては、snipmate READMEのINSTALLセクションを参照してください)。
メンテナンスされたフォークを使用している場合は、.vimrcでg:snipMate.scope_aliasesを設定すると、次のように機能すると思います。
let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['eruby'] = 'eruby,eruby-rails'
ドキュメントを更新するためにsnipmateにプルリクエストを追加しました。
SnipMate をしばらく試した後、UltiSnips の時流に乗っています。SirVer が述べたように、html、ruby などのスニペットをファイル内で使用できるようにする*.erb
ことは、ファイルに拡張行を追加するのと同じくらい簡単でしたeruby.snippets
。
元のsnipMateプラグインを使用して、ファイルを作成し~/.vim/ftplugin/erb_snippets.vim
、次の内容を入れます。
silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype)
silent call ExtractSnipsFile(g:snippets_dir . 'ruby.snippets', &l:filetype)