que estoy tratando de conseguir Vim a la sintaxis resaltar cualquier archivo que termina con la extensión .Rtex
de la siguiente manera:problemas para usar de Vim syn-inclusión y syn-región para incrustar resaltado de sintaxis
- se destacó Todo el texto de nivel superior como TeX
- Excepción: cualquier texto entre
\begin{python}...\end{python}
se destaca como Python
soy capaz de lograr cada uno de estos criterios de forma individual, pero incapaz de lograr ambas cosas simultáneamente. Creo que de alguna manera el resaltado TeX anula mis regiones resaltadas en Python, o evita que entren en vigencia, y estoy atascado tratando de descubrir cómo.
Primer paso: edición .vimrc
para dar los archivos con extensión .Rtex
el tipo de archivo rtex
:
au BufRead *.Rtex setf rtex
Segundo paso: crear~/.vim/syntax/rtex.vim
. Es el contenido de este archivo el que determinará cómo resaltar los archivos .Rtex
.
Tercer paso: permiten TeX resaltado en general de nivel superior, al hacer rtex.vim
tener este aspecto:
runtime! syntax/tex.vim
Si ahora abrir un archivo .Rtex
, todo el archivo está seleccionado como TeX, incluyendo cualquier texto dentro de \begin{python}...\end{python}
, como se esperaba.
Cuarto paso: siga las instrucciones de Vim de :help syn-include
incluir resaltado pitón y aplicarlo a todas las regiones delimitadas por \begin{python}
y \end{python}
. Mi archivo rtex.vim
ahora se ve así:
runtime! syntax/tex.vim
unlet! b:current_syntax
syntax include @Python syntax/python.vim
syntax region pythonCode start="\\begin{python}" end="\\end{python}" [email protected]
El comando unlet! b:current_syntax
está destinado a forzar el archivo python.vim
sintaxis para ejecutar a pesar de una sintaxis existente (TEX) ya está activo.
Problema: Si abro ahora un archivo .Rtex
, el archivo completo sigue estando resaltado solo como TeX. La región \begin{python}...\end{python}
parece no tener ningún efecto.
Experimento: Si quito o comentario a cabo el comando runtime!
, que hacen get pitón resaltado, dentro de los \begin{python}...\end{python}
regiones, tal y como se desee, pero por supuesto no TeX destacando en el resto del documento. Por lo tanto, concluyo que el resaltado TeX es de alguna manera responsable de evitar que las regiones de python entren en vigencia.
¿Puede un Master of Vim ofrecerme alguna sugerencia? Actualmente estoy perplejo.He mirado en varias páginas y preguntas StackOverflow que parecen relevantes, pero ninguno de ellos ha llevado hasta ahora a una solución:
- http://vim.wikia.com/wiki/Different_syntax_highlighting_within_regions_of_a_file
- Embedded syntax highligting in Vim
- VIM syntax highlighting of html nested in yaml
¿Esto lleva a errores de tiempo de compilación de LaTex ya que '\ begin {Python}' es desconocido? – puk
No, observe el '\ usepackage {python}' que define el entorno 'python'. –
¿Qué sucede si quiero usar la sintaxis basada en '\ begin {Puk'sSuperAmazingLanguage}'? = P – puk