Tengo la siguiente estructura de clases CSS
.mAIcon
.mAIcon-reject
.mAIcon-edit
.mAIcon-accept
.event
y así.
Dentro de mis archivos HTML, quiero completar automáticamente estos nombres de clase.
Pero cuando escribo
<span class="mAIcon mA|">
y quiero autocompletar el resto, lo único que obtengo es
<span class="mAIcon mAIcon|">
Para obtener lo que realmente quiero, tengo que escribir un extra -
y, por ejemplo, e
usar el autocompletado nuevamente. Pero luego obtengo todo lo que comienza con una e
, incluso la clase event
. Esto es realmente molesto y hace que el autocompletado sea bastante inútil en este caso.
Utilizo la finalización de palabras clave genéricas de Vim con el i_CTRL-N
comando y no tengo instalados complementos de finalización adicionales.
¿Es posible incluir la -
detección de nombres de clase CSS para el autocompletado?
autocompletion
Raphael Ahrens
fuente
fuente
<c-x><c-n>
que también debe especificarse en su pregunta.'iskeyword'
, y aunque las palabras clave se usan también para otros comandos (efectos secundarios), esta sigue siendo la forma correcta de lograr lo que desea sin usar otros tipos de finalización (automática).ctags
debería ser capaz de generar etiquetas para su proyecto. Entonces puede completar la etiqueta coni_CTRL-X_CTRL-]
. Sin embargo, veo en los documentos que la finalización de etiquetas también usa laiskeyword
opción, por lo que podría estar equivocado. En cualquier caso, probablemente quieras leer:h ins-completion
.Respuestas:
Sí, puede definir qué caracteres se consideran parte de las palabras clave con la
'iskeyword'
opción:Puede agregar el siguiente fragmento a su
vimrc
para restringir esa opción a los archivos CSS y HTML:fuente
iskeyword
tiene muchos efectos secundarios. Por ejemplodw
en elsome-text
ahora, se eliminaránsome-text
, en lugar de solamentesome
. No necesariamente es algo malo, sino algo a tener en cuenta.js
ycoffee
archivos. Porque me encuentro completando clases de CSS a menudo en Javascript, y rara vez tengo un código que realice sustracción sin un espacio. En el código que edito,diff = foo - bar;
es más común quediff=foo-bar;
Resolví el problema escribiendo un pequeño script de Python que crea un archivo de etiqueta. El script busca clases CSS e imprime una línea de etiqueta para cada clase.
En este momento ejecuto el script a mano con
que agrega los archivos al archivo de etiquetas. Esto funciona ya que la finalización de la etiqueta no está limitada por la
iskeyword
configuración.Aquí está el contenido del script que también está disponible en GitHub .
fuente