Necesito resaltar una lista de palabras en vim, preferiblemente las palabras se deben definir en un archivo. Un poco como la revisión ortográfica. He estado buscando en http://vim.wikia.com/wiki/Highlight_multiple_words, pero requiere que defina cada palabra como una nueva posición y no admite el almacenamiento de las palabras en un archivo (aunque son almacenables).Vim resaltar una lista de palabras
Respuesta
Puede usar el comando :match
.
:match Todo /word1/
El primer parámetro del comando es el punto culminante del grupo (para ver todos los grupos disponibles :highlight
). El segundo parámetro es un patrón de búsqueda.
Puede ponerlos en cualquier archivo y cargarlo a través de :source
.
Otra forma es cambiar la expresión regular (@zpon THX):
:match Todo /word1\|word2\|word3/
Si se desea resaltar de manera diferente:
:match Todo /word1/
:2match Error /word2/
:3match Title /word3/
recomendaría utiliza syn keyword
para esto. Hay otras opciones como :match
según lo sugerido por michael.kebe y syn match
, etc., pero todas están basadas en coincidencias de expresiones regulares. La desventaja de esto es que a medida que aumenta el número de palabras que desea combinar, la velocidad de Vim disminuye. Las coincidencias de palabras clave son mucho más rápido. También puede definir fácilmente varias palabras clave en una línea (aunque hay un límite de aproximadamente 512 caracteres en una línea, si la memoria me sirve correctamente).
syn keyword Todo word1 word2 word3
syn keyword Todo word4
syn keyword Todo word5
poner estas líneas en cualquier archivo y :source
o volcar en su ~/.vim/after/syntax/c.vim
para que sea source
d automáticamente para todos los archivos de C (elija su archivo de sintaxis para el tipo de archivo que le interesa).
Al igual que con la respuesta michael.kebe, el primer parámetro (Todo
en este caso) es el grupo resaltado. Usted puede hacer su propio grupo si quieres y definir el resaltado:
syn keyword MyHighlightGroup word6 word7
" Then EITHER (define your own colour scheme):
hi MyGroupName guifg=Blue ctermfg=Blue term=bold
" OR (make the colour scheme match an existing one):
hi link MyGroupName Todo
¿Hay alguna restricción en el método de palabra clave syn? No parece tener ningún efecto en uno de mis archivos tex, pero en todos los demás archivos – zpon
Las únicas limitaciones que conozco son que los caracteres en la palabra deben ser todos caracteres de palabras clave (es decir, no ':' u otros símbolos) y que no puede usar una de las palabras clave de opciones relacionadas con la sintaxis especial de vim ('contenida', etc.). Para aquellos que usaría 'syn match MyHighlightGroup/\
Eso es extraño, solo he usado palabras normales como "eso" y "allí" – zpon
: partido de Todo/\ < \ (palabra1 \ | palabra2 \ | word3 \) \>/
- 1. ¿Vim sustitución de una lista de palabras con otra misma lista de palabras?
- 2. Microsoft Word Macro para resaltar varias palabras
- 3. Resaltar palabras especificadas por el usuario en Visual Studio?
- 4. vim sintaxis resaltar mejorar el rendimiento
- 5. Posible resaltar las comillas coincidentes en vim?
- 6. ¿Cómo resaltar los scripts Bash en Vim?
- 7. Lista de palabras "Detener palabras" para inglés?
- 8. Palabras clave de bloqueo de fuente: resaltar la subexpresión múltiple
- 9. Lucene.Net Resultado de búsqueda para resaltar palabras clave de búsqueda
- 10. Resaltar todas las apariciones de palabras seleccionadas en AvalonEdit
- 11. Cómo resaltar palabras de entrada en autocompletar jquery ui
- 12. Sphinx: lista de idiomas compatibles para resaltar?
- 13. eliminar duplicados de una lista (en vim)
- 14. ¿Existe un complemento de Vim para resaltar Hex, Rgb, Colors
- 15. ¿Hay alguna manera de resaltar búsquedas múltiples en (g) Vim?
- 16. Vim: ¿Resaltar las variables de C++ usando scope?
- 17. Archivo de texto de Vim separado para palabras personalizadas
- 18. Buscar y reemplazar palabras completas en vim
- 19. Convirtiendo una cadena en una lista de palabras?
- 20. ¿Cómo buscar palabras completas en vim?
- 21. ¿Por qué VIM resalta algunas palabras?
- 22. Vim reemplazar dos palabras entre sí
- 23. alt + retroceso para eliminar palabras en vim
- 24. Rodee dos palabras con comillas en Vim
- 25. Cómo forzar vim a sintaxis-resaltar un archivo como html?
- 26. ¿Cómo cambiar el reconocimiento de palabras en el hechizo vim?
- 27. Resaltar coincidencias en Vim sobre un patrón invertido
- 28. En vim, ¿cómo puedo resaltar TODO: y FIXME :?
- 29. ¿Dónde puedo encontrar una lista de palabras de parada hebreas?
- 30. Generar subconjuntos de una lista de palabras permutadas en Python
Cuando agrego más de una línea para archivarla es solo la última línea que se resalta – zpon
Calculada,: coincide con VisualNOS/word1 \ | word2 \ | word3/ – zpon
Tiene los comandos ': match',': 2match' y ': 3match' para hacer eso, y por lo tanto, puedes almacenar tres patrones. Pero también puede usar ': call matchadd()' (': help matchadd()'). – Benoit