當我在一個html.erb文件中,我沒有得到snipMate片段。Vim html.erb snippets ?? snipMate需要一個vim的提示
我想HTML和Ruby,或只是HTML會好, 我該怎麼做?
我需要寫一組片段嗎?
如果是這樣,有沒有辦法拉動現有的片段而不復制它們?
當看到.html erb時,有沒有告訴vim進入html模式的方法?
當我在一個html.erb文件中,我沒有得到snipMate片段。Vim html.erb snippets ?? snipMate需要一個vim的提示
我想HTML和Ruby,或只是HTML會好, 我該怎麼做?
我需要寫一組片段嗎?
如果是這樣,有沒有辦法拉動現有的片段而不復制它們?
當看到.html erb時,有沒有告訴vim進入html模式的方法?
片段存儲在您的~/.vim
文件夾中某處的snippets
目錄中。
如果你看那裏,通常每個文件類型有一個文件,有一個c.snippets,一個ruby.snippets,所以你似乎要做的就是在那裏用你想要的創建一個erb.snippets。
最終,您可以將ruby.snippets和html.snippets的內容複製到新的erb.snippets中。
或者你可以在github上搜索,有些人已經發布了他們自己的erb.snippets配置。例如,有一個很好的收集在那裏: https://github.com/scrooloose/snipmate-snippets
最好的事情是先嚐試打開一個片段文件,看看語法,這是很容易創建自己的片段取決於你最使用什麼。
打開「.html.erb」文件時,您可以使用autocmd
將文件類型設置爲html。這可能會對用於「.erb」文件的插件產生不必要的副作用。
autocmd BufNewFile,BufRead *.html.erb set filetype=html
您還可以通過使用點文件類型加載多個一組片段的:
autocmd BufNewFile,BufRead *.html.erb set filetype=html.eruby
見:help snippet-syntax
在snipMate幫助更多信息。
注意這一點。語法高度弄亂了:https://dl.dropbox.com/u/750013/SS_2012-11-01_21%3A27%3A41.png。 – robertokl 2012-11-01 23:28:43
我使用了自動命令的方法來設置的文件類型,但後來我得到了這樣的事情HTML語法錯誤:
<%= image_tag("logo.png", :alt => "Sample App", :class => "round") %>
最後兩個尖括號會以紅色突出顯示,這驅使我瘋狂。所以,我創建了一個名爲eruby.snippets的符號鏈接,指向html.snippets。這就像一個冠軍,現在我不需要在兩個地方進行更改。我還爲非html eruby片段提供了eruby-rails片段目錄。
這是在Mac OS X系統上。請注意,別名不起作用。您需要點擊終端並使用ln命令。不確定在Windoze系統上這樣做。
我目前正在StackOverflow上推廣UltiSnips。 UltiSnips支持擴展其他類型的文件,你的erb.snippets應該是這樣的:對於snipMate片段
extends html, ruby, rails
snippet temp "A snippet only in Erb"
erb rules ${1}
endsnippet
A轉換腳本附帶UltiSnips,所以切換容易。
您可以將多個片段作用域分配給單個文件類型。 (我發現改變文件類型往往會破壞一些語法高亮)。
您可以檢查再培訓局的文件的文件類型的確是「eRuby的」有:
:set filetype?
如果您使用的maintained fork of snipmate,它看起來像你想同時得到eruby.snippets和eruby-來自snipmate-snippets存儲庫的rails.snippets(由honza擁有,但我沒有足夠的聲望鏈接到此處)(請參閱snipmate README的INSTALL部分以進行正確設置)。
如果您使用的是保持叉,我相信設置g:與下面你的.vimrc snipMate.scope_aliases會爲你的工作,例如:
let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['eruby'] = 'eruby,eruby-rails'
我添加了一個pull request到snipmate有其文檔已更新。
在嘗試SnipMate一段時間後跳上UltiSnips潮流。就像SirVer提到的那樣,在*.erb
文件中提供html,ruby等片段就像將延長線添加到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)
真棒謝謝.. erb-rails缺少html標籤,所以我只需將它們複製到!謝謝。 – 2011-01-11 15:01:33
你是怎麼做到的?我已經將erb.snippets添加到片段文件夾並添加了一些片段,但仍然顯示「未找到模式」,而snipmate完全可以與.c .rb和其他本機支持的文件完美匹配。 – Sergey 2011-10-17 11:57:49