Pregunta

Cuando estoy en un archivo html.erb, consigo no hay fragmentos snipMate.

Me gustaría HTML y Ruby, HTML o simplemente estaría bien, ¿Cómo puedo hacer esto?

¿Me necesidad de escribir un conjunto de fragmentos?

Si es así, ¿hay alguna manera de tirar en fragmentos existentes sin copiarlos?

¿Hay una manera de decirle a vim para entrar en modo html cuando se ve erb .html?

¿Fue útil?

Solución

Los fragmentos se almacenan en el directorio llamado alguna parte snippets en su carpeta ~/.vim.

Si se mira allí, por lo general hay un archivo por cada tipo de archivo, hay un c.snippets, un ruby.snippets, por lo que parece lo que tiene que hacer es crear un erb.snippets allí con lo que desea.

Con el tiempo usted podría copiar el contenido de ruby.snippets y html.snippets en sus nuevas erb.snippets.

También puede buscar en github, algunas personas han publicado su propia configuración erb.snippets. Por ejemplo, hay una colección agradable allí: https://github.com/scrooloose/snipmate-snippets

Lo mejor sería probar primero para abrir un archivo de fragmento y vistazo a la sintaxis, es bastante fácil de crear su propio fragmento en función de lo que más usa.

Otros consejos

Se puede utilizar un autocmd para establecer el tipo de archivo a html al abrir un archivo ".html.erb". Esto podría tener efectos secundarios no deseados de los plugins que el trabajo para los archivos ".erb".

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

También puede cargar más de un conjunto de fragmentos mediante el uso de un tipo de archivo de puntos:

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

Ver :help snippet-syntax en la ayuda snipMate para obtener más información.

Actualmente estoy en una gira de promoción para UltiSnips en StackOverflow. UltiSnips soportes que se extienden a otros tipos de archivos, sus erb.snippets sería el siguiente:

extends html, ruby, rails

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

Una secuencia de comandos de conversión para fragmentos snipMate se envía con UltiSnips, de modo de conmutación es fácil.

utiliza el método AutoCommand al conjunto el tipo de archivo, pero luego consiguió errores de sintaxis HTML para cosas como esta:

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

Los últimos dos escuadras se resalta en rojo, lo que me llevó loco. Por lo tanto, he creado un enlace simbólico llamado eruby.snippets que apunta a html.snippets. Que funcionó como un campeón y ahora no tienen que hacer cambios en dos lugares. También tengo una eruby-carriles snippet directorio para que no sea HTML eruby fragmentos.

Esto es en un sistema Mac OS X. Tenga en cuenta que un alias no funcionará. Es necesario golpear el terminal y usar el comando ln. No está seguro acerca de hacer esto en un sistema Windoze.

Se pueden asignar múltiples fragmentos alcances a un solo tipo de archivo. (He encontrado que alterando el tipo de archivo tiende a romper algunas resaltado de sintaxis).

Se puede comprobar que el tipo de archivo para los archivos de erb es de hecho 'eruby' con:

:set filetype?

Si estás usando el tenedor mantenido de snipmate , parece que usted querrá tanto los eruby.snippets y eruby-rails.snippets desde el repositorio snipmate-fragmentos (propiedad de honza, pero no tengo la reputación suficiente para enlazar con él aquí) (consulte la sección de instalación de la README snipmate para la configuración adecuada).

Si está utilizando el tenedor mantenido, creo que el establecimiento de g: snipMate.scope_aliases en su .vimrc con la siguiente trabajará para su ejemplo:

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

¡Tengo una tirón solicitud a snipmate tener su documentación actualizada .

subiendo al carro de UltiSnips después de probar SnipMate por un tiempo. Al igual que SirVer mencionado, teniendo el html, rubí, etc de fragmentos disponibles dentro de un archivo *.erb era tan simple como añadir la línea se extienden al archivo eruby.snippets.

Con el original snipMate plugin, crear un archivo de ~/.vim/ftplugin/erb_snippets.vim y poner el siguiente en él:

silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype)
silent call ExtractSnipsFile(g:snippets_dir . 'ruby.snippets', &l:filetype)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top