Cómo configurar la ortografía para ignorar algunos entornos en LaTeX

10

¿Hay alguna manera de decirle a vim que no revise la ortografía de parte de un documento de látex? Por ejemplo, ¿bloque de código usando el mintedentorno o las URL en \url{}?

(No estoy seguro de que sea relevante para la corrección ortográfica, pero estoy usando el complemento vimtex para editar archivos de látex).

Grégoire
fuente
1
Ver (también) esto: vi.stackexchange.com/a/4003/1800
VanLaser
@Gregoire también mencionó esta pregunta en vimtex / issues / # 219 .
Karl Yngve Lervåg

Respuestas:

10

Puede desactivar la corrección ortográfica para los elementos de sintaxis mediante su inclusión en un grupo junto con @NoSpell. Puede leer :help spell-syntaxun poco de información y mirar su archivo de sintaxis tex que probablemente ya contenga varios ejemplos. Si escribe :tabe $VIMRUNTIME/syntax/tex.vim, debería obtener el archivo de sintaxis tex en una nueva pestaña. Si luego busca /\c@NoSpell, puede ver una línea como

 syn cluster texMathZoneGroup add=@NoSpell

El texMathZoneGroupclúster se definió anteriormente en el script para que contenga varios elementos de sintaxis y aquí @NoSpellse agrega al clúster para deshabilitar la corrección ortográfica de estos elementos. Me temo que no puedo decir exactamente dónde hacer el mejor cambio para sus elementos de sintaxis particulares, ya que no conozco muy bien ese archivo de sintaxis. Es posible que ya haya un clúster obvio en el que simplemente puede agregar @NoSpell, o puede que tenga que crear un clúster con contains=los elementos en cuestión. También es una buena idea hacer una copia del archivo de sintaxis en el directorio de tiempo de ejecución del usuario y aplicar los cambios allí en lugar de cambiar el archivo de sintaxis distribuido, o aplicar los cambios en una after/syntax/tex.vimu otra secuencia de comandos que se ejecuta después de cargar el archivo de sintaxis .

Como usa un complemento, puede tener opciones relacionadas con los elementos que se revisan ortográficamente. No lo uso, vimtexpero Karl Lervåg es bastante activo aquí y, si captas su atención, podría responderte por ti.

jjaderberg
fuente
No hay tales opciones en la vimtexactualidad, no. Pero parece tener sentido ignorar la ortografía en entornos diseñados, por lo que podría actualizar el complemento correspondientemente. Gracias por la buena explicación!
Karl Yngve Lervåg
Miré a mi alrededor en el código y no encontré una región existente para el entorno acuñado, así que intenté crear el mío de esta manera: syn region mintedZone start="\\begin{minted}" end="\\end{minted}" contains=@NoSpellpero no parece ayudar. ¿Cualquier sugerencia?
Grégoire
@ Grégoire Por favor, continuemos esta discusión en el tema vimtex .
Karl Yngve Lervåg
5

Puede agregar sus propias reglas de sintaxis, por ejemplo, a ~/.vim/after/syntax/tex.vim. Para evitar la corrección ortográfica dentro de un comando como \url, puede usar el siguiente código:

syntax match texStatement '\\command' nextgroup=texMyCommand
syntax region texMyCommand matchgroup=Delimiter start='{' end='}' contained contains=@NoSpell

Aquí texStatementy Delimiterson grupos que se definen por el plugin interno de sintaxis, ver :e $VIMRUNTIME/syntax/tex.vim.

Si desea comprender los comandos anteriores, puedo recomendar las siguientes secciones de ayuda:

Karl Yngve Lervåg
fuente