Frage

Wenn ich in einer html.erb Datei bin, erhalte ich keine snipMate Schnipsel.

Ich mag sowohl HTML und Ruby, oder einfach nur würde HTML in Ordnung sein, Wie würde ich das tun?

brauche ich, um einen Satz von Schnipseln zu schreiben?

Wenn ja, ist es eine Möglichkeit, in der Ziehen-Schnipsel vorhandenen ohne sie zu kopieren?

Gibt es eine Möglichkeit zu sagen, vim in HTML-Modus zu gehen, wenn es .html erb sieht?

War es hilfreich?

Lösung

Snippets wird in Verzeichnis mit dem Namen snippets irgendwo in Ihrem ~/.vim-Ordner gespeichert.

Wenn Sie dort zu suchen, gibt es in der Regel eine Datei pro Dateityp gibt es eine c.snippets, ein ruby.snippets, so scheint es, was Sie tun müssen, ist eine erb.snippets dort mit zu schaffen, was Sie wollen.

Schließlich könnte man den Inhalt von ruby.snippets und html.snippets in Ihr neues erb.snippets kopieren.

Alternativ Sie auf Github suchen können, haben einige Leute ihre eigenen erb.snippets Konfiguration geschrieben. Zum Beispiel gibt es eine schöne Sammlung: https://github.com/scrooloose/snipmate-snippets

Das Beste, was würde zuerst versucht die Syntax eine Snippet-Datei und das Aussehen zu öffnen, ist es ziemlich einfach ist Ihre eigene Snippet zu erstellen, je nachdem, was Sie am häufigsten verwenden.

Andere Tipps

Sie können einen autocmd verwenden, um den Dateityp html zu setzen, wenn eine „.html.erb“ Datei öffnen. Dies könnte unerwünschte Nebenwirkungen für Plugins, dass die Arbeit für „.erb“ -Dateien.

autocmd BufNewFile,BufRead *.html.erb set filetype=html

Sie können auch mehr als einen Satz von Snippets geladen durch einen punktierte Dateityp mit:

autocmd BufNewFile,BufRead *.html.erb set filetype=html.eruby

Siehe :help snippet-syntax in der snipMate Hilfe für weitere Informationen.

Ich bin zur Zeit auf eine Förderung der Tour für UltiSnips auf Stackoverflow. UltiSnips Träger erstreckt andere Dateitypen, Ihre erb.snippets würde wie folgt aussehen:

extends html, ruby, rails

snippet temp "A snippet only in Erb"
erb rules ${1}
endsnippet

Ein Conversion-Skript für snipMate Schnipsel mit UltiSnips ausgeliefert, so Schalt einfach ist.

Ich benutzte den automatischen Befehl Methode zu dem Satz der Dateityp, aber dann bekam ich HTML-Syntax-Fehler für Dinge wie diese:

<%= image_tag("logo.png", :alt => "Sample App", :class => "round") %>

Die letzten beiden spitzen Klammern würde rot markiert, was mich bonkers fuhr. Also, habe ich einen Symlink namens eruby.snippets, dass Punkte auf html.snippets. Das funktionierte wie ein Weltmeister und jetzt muss ich keine Änderungen an zwei Stellen machen. Ich habe auch eine eruby-Schienen-Snippet-Verzeichnis für Nicht-HTML-Schnipsel eruby.

Dies ist auf einem Mac OS X-System. Beachten Sie, dass ein Alias ??nicht funktionieren. Sie müssen das Terminal und verwenden Sie den Befehl ln getroffen. Nicht sicher diese auf einem Windoof-System zu tun.

Sie können mehrere Schnipsel zuweisen Tive zu einem einzigen Dateityp. (Ich habe festgestellt, dass die Datei des Typs verändern neigt einige Syntax-Hervorhebung zu brechen).

Sie können prüfen, ob der Dateityp für erb-Dateien ist in der Tat ‚eruby‘ mit:

:set filetype?

Wenn Sie die gehalten Gabel von snipmate verwenden, sieht es wie Sie wollen, werde sowohl die eruby.snippets und eruby-rails.snippets aus der snipmate-Schnipsel-Repository (von honza gehört, aber ich habe nicht genug Ruf Link, um es hier) (siehe die für die richtige Setup Abschnitt der snipmate README INSTALL).

Wenn Sie die beibehalten Gabel verwenden, glaube ich Einstellung g: snipMate.scope_aliases in Ihrem .vimrc mit folgenden werden für Ihr Beispiel funktioniert:

let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['eruby'] = 'eruby,eruby-rails'

Ich habe hinzugefügt, um ihre Dokumentation einen -Pull-Request snipmate aktualisiert haben .

Springen auf den fahrenden Zug UltiSnips nach SnipMate für eine Weile versuchen. Wie SirVer erwähnt, die HTML, Rubin mit, etc Schnipsel innerhalb einer *.erb Datei so einfach war, wie die Leitung zum eruby.snippets Datei erweitern hinzugefügt wird.

Mit dem Original snipMate Plugin, um eine Datei ~/.vim/ftplugin/erb_snippets.vim erstellen und die folgenden in sie gesetzt:

silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype)
silent call ExtractSnipsFile(g:snippets_dir . 'ruby.snippets', &l:filetype)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top