Question

Quand je suis dans un fichier html.erb, je reçois pas des extraits snipMate.

Je voudrais HTML et Ruby, ou tout simplement HTML serait bien, Comment puis-je faire?

Aurais-je besoin d'écrire une série d'extraits?

Si oui, est-il un moyen de tirer dans les extraits existants sans les copier?

Y at-il une façon de dire vim pour passer en mode html quand il voit .html erb?

Était-ce utile?

La solution

Snippets sont stockés dans le répertoire appelé quelque part de snippets dans votre dossier ~/.vim.

Si vous regardez là, il y a généralement un fichier par type de fichier, il y a un c.snippets, un ruby.snippets, il semble donc ce que vous devez faire est de créer un erb.snippets là avec ce que vous voulez.

Finalement, vous pouvez copier le contenu de ruby.snippets et html.snippets dans vos nouveaux erb.snippets.

Sinon, vous pouvez effectuer une recherche sur GitHub, certaines personnes ont posté leur propre configuration erb.snippets. Par exemple, il y a une collection bien là: https://github.com/scrooloose/snipmate-snippets

La meilleure chose serait d'essayer d'abord d'ouvrir un fichier d'extrait et regardez la syntaxe, il est assez facile de créer votre propre extrait en fonction de ce que vous utilisez le plus.

Autres conseils

Vous pouvez utiliser un autocmd pour définir le type de fichier html lors de l'ouverture d'un fichier « .html.erb ». Cela pourrait avoir des effets secondaires indésirables pour les plugins que le travail pour les fichiers « .erb ».

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

Vous pouvez également charger plus d'un ensemble d'extraits en utilisant un type de fichier en pointillé:

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

Voir :help snippet-syntax dans l'aide snipMate pour plus d'informations.

Je suis actuellement en tournée de promotion pour UltiSnips sur StackOverflow. UltiSnips supports s'étendant d'autres types de fichiers, votre erb.snippets ressemblera à ceci:

extends html, ruby, rails

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

Un script de conversion pour des extraits snipMate est livré avec UltiSnips, si la commutation est facile.

J'utilisé la méthode autocommand à l'ensemble de la filetype, mais je me suis des erreurs html syntaxe pour des choses comme ceci:

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

Les deux équerres dernier serait en rouge, ce qui m'a conduit de façon folle. Donc, j'ai créé un eruby.snippets appelé symlink que les points à html.snippets. Cela a fonctionné comme un champion et maintenant je n'ai pas d'apporter des modifications à deux endroits. J'ai aussi un répertoire snippet eruby-rails pour des extraits non html eruby.

est sur un système Mac OS X. Notez qu'un alias ne fonctionnera pas. Vous avez besoin de frapper le terminal et utiliser la commande ln. Vous ne savez pas à faire cela sur un système Windoze.

Vous pouvez affecter plusieurs extraits étendues à un seul type de fichier. (Je l'ai trouvé que la modification du filetype tend à briser une mise en évidence de la syntaxe).

Vous pouvez vérifier que le type de fichier pour les fichiers erb est en effet « eruby » avec:

:set filetype?

Si vous utilisez le maintenu une fourchette de snipmate , il semble que vous voudrez les deux eruby.snippets et eruby-rails.snippets du référentiel snipmate-extraits (appartenant à Honza, mais je ne suis pas assez réputation de lien ici) (voir la section installation du snipmate README pour l'installation correcte).

Si vous utilisez la fourche maintenue, je crois g: la mise en snipMate.scope_aliases dans votre .vimrc avec cela devrait fonctionner pour votre exemple:

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

J'ai ajouté un demande traction snipmate d'avoir leur documentation mise à jour .

Sauter sur le train en marche UltiSnips après avoir essayé SnipMate pendant un certain temps. Comme SirVer mentionné, ayant le html, rubis, etc snippets disponibles dans un fichier *.erb était aussi simple que l'ajout de l'extension de la ligne dans le fichier eruby.snippets.

Avec l'original snipMate plug-in, créez un ~/.vim/ftplugin/erb_snippets.vim de fichier et il faut mettre dans ce:

silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype)
silent call ExtractSnipsFile(g:snippets_dir . 'ruby.snippets', &l:filetype)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top