No proporcionaré una comparación en profundidad, ya que solo tengo una experiencia limitada con los diferentes complementos. Conozco bien algunos complementos ( LaTeX-Box y LaTeX-Suite ), y conozco muy bien un complemento, ya que lo estoy desarrollando yo mismo: vimtex . Por lo tanto, escribiré principalmente sobre vimtex. Sin embargo, primero señalaré algunas referencias que pueden ser de interés para otros.
Algunas descripciones y referencias
Hay muchos complementos para Vim. Estos son los que he reconocido como al menos semi populares:
En tex.stackexchange.com , hay una gran lista de editores e IDE de LaTeX. Ofrece una buena descripción general en general, pero también proporciona una descripción general de los complementos para Vim:
vimtex
vimtex se basa en LaTeX-Box. Comenzó después de haber contribuido con correcciones de errores y actualizaciones a LaTeX-Box durante algún tiempo. Me di cuenta de que el complemento podría escribirse de una manera mucho más moderna si lo escribía desde cero. Primero eliminé la mayoría de las características y construí un "motor" más robusto y modular. Luego agregué características, y creo que hoy tiene la mayoría de las características de LaTeX-Box y algunas más.
En lugar de dar una lista completa de características (ver en su lugar aquí para eso ), trataré de señalar algunas de las diferencias entre vimtex y otros complementos. Sin embargo, quiero proporcionar algunas afirmaciones audaces:
- vimtex es el complemento Vim más moderno para LaTeX disponible hoy
- El código es de alta calidad y actualmente lo mantengo activamente yo mismo
- El complemento es principalmente estable, aunque algunas características aún se están desarrollando (y como tal pueden estar sujetas a cambios y actualizaciones)
vimtex vs LaTeX-Box
Como vimtex se basa en LaTeX-Box, obviamente tiene principios similares. La idea es mantener las cosas simples y resolver problemas que otros complementos aún no hayan resuelto. Utiliza latexmk para compilar los documentos de LaTeX, y se basa en el complemento interno de Vim para resaltar la sintaxis.
Actualmente hay una característica importante en LaTeX-Box que falta en vimtex: compilación de disparo único con devolución de llamada . La razón por la que esta característica no está en vimtex es simplemente porque es complicada, y porque nunca encontré una manera de implementarla que sea lo suficientemente simple para mi preferencia (las sugerencias son bienvenidas, no dude en abrir problemas o solicitar solicitudes) )
vimtex vs LaTeX-Suite
La principal diferencia entre vimtex y LaTeX-Suite es probablemente que vimtex no intenta implementar un IDE completo para LaTeX dentro de Vim. P.ej:
- vimtex no proporciona una función de fragmento completo, porque UltiSnips o neosnippet o motores de fragmentos similares lo manejan mejor .
- vimtex se basa en los principios de Vim: proporciona objetos de texto para entornos, matemática en línea, proporciona movimientos para secciones y párrafos
- vimtex utiliza
latexmk
para la compilación con una función de devolución de llamada para obtener comentarios instantáneos sobre errores de compilación
- vimtex es muy modular: si no le gusta una característica, puede desactivarla.
vimtex
puede trabajar en paraleloLatex-Suite
, lo que significa que puede obtener lo mejor de los dos complementos al mismo tiempo . :)No puedo hacer una comparación, ya que Vim-LaTeX es el único complemento de LaTeX que he usado. He estado usando Vim-LaTeX durante casi un año. Así que hablaré solo de Vim-LaTeX.
Hay muchas características presentes en Vim-LaTeX. No los recuerdo a todos. Solo hablaré sobre características que conozco y uso constantemente.
Nota: Esta es mi experiencia de usuario limitada , que puede ser muy engañosa . No soy un usuario experimentado de Vim. Y no sé nada de vimscript.
IMAP () y
<C-j>
saltosIMAP()
La función y<C-j>
las funciones de salto se proporcionan por separado como un complementoimaps.vim
en el paquete Vim-LaTeX. Son funciones potentes y podrían ser muy útiles incluso cuando no esté escribiendo LaTeX.IMAP()
La función proporciona una forma más natural de hacer asignaciones de modo de inserción y plantillas en general que la función integradaimap
yiabbrev
, IMO.<C-j>
El salto es utilizado por muchas características de terminación de Vim-LaTeX. Un punto de salto se indica con<++>
.Las asignaciones de teclas de modo de inserción incorporadas se implementan como
IMAP()
llamadas. Por ejemplo, puede encontrar una larga lista deIMAP()
llamadas útiles en elmain.vim
archivo:Luego, cuando escribe say
()
, el cursor residirá automáticamente entre paréntesis, reemplazando al primero<++>
. Después de que termine de escribir en el interior, patea<C-j>
y golpea , el cursor se moverá fuera de los paréntesis y simplemente sigue escribiendo hacia adelante. Una vez que está acostumbrado, comienza a formar un flujo de escritura que es un poco adictivo ...Usted ve desde arriba que un
\left
\right
par se puede escribir fácilmente con doble trazo de su soporte de apertura. Y<C-j>
saltar hace que la escritura fluya.Un importante problema técnico de
IMAP()
y<C-j>
es que se mete hasta su último historial de cambios . (Un error que deseo solucionar durante mucho tiempo). Por lo tanto, puede encontrar un comportamiento inesperado al intentar rehacer su último cambio.
si su "supuesto último cambio" contiene estas llamadas a funciones.Puede hacer todo tipo de asignaciones
IMAP()
, desde simples asignaciones de teclas hasta plantillas más complejas. Estos son algunos ejemplos de mis asignaciones (ftplugin/tex.vim
):Un hecho interesante sobre el
imaps.vim
complemento es que es un complemento global, lo que implica su uso potencial más allá de LaTeX. De hecho, uso<++>
y<C-j>
saltos (combinados con otros complementos) para crear plantillas de fragmentos de código en C.<F5> <F7>
Inserción de comandos y entornosUna desventaja
IMAP()
es que la combinación de teclas ya no se puede usar en texto normal (a menos que deshaga la asignaciónu
). En los casos en los que solo desee activar el mapeo como lo desee,<F5>
y<F7>
será útil. Estas dos teclas se utilizan para activar entornos e insertar comandos en línea, respectivamente. Y se comportan de manera diferente según el modo y las personalizaciones del usuario.En el modo Insertar / Normal, cuando el cursor está adjuntando una palabra o está en la palabra, al presionar
<F5>
se insertará de forma predeterminada un entorno básico del formulariobasado en la palabra; Al presionar,
<F7>
se insertará de manera predeterminada un comando básico en línea del formulario\word{}<++>
basado en la palabra."Por defecto", quiero decir que puede personalizar el comportamiento de una palabra específica cuando se activa con
<F5>
/<F7>
. Estas son algunas de mis configuraciones (.vimrc
):En el modo Insertar / Normal, cuando el cursor no está unido a nada (también conocido como solo ), al presionar
<F5>
/ se<F7>
le solicitará un menú para seleccionar el entorno / comando para insertar. O puede escribir el nombre del entorno / comando deseado en la parte inferior. Personalmente, rara vez uso<F5>
/ de<F7>
esta manera.Presione
<F5>
/<F7>
después de seleccionar visualmente un fragmento de texto abrirá un menú para ajustar el texto . Luego, el texto seleccionado se envolverá en el entorno / comando que seleccionó o escribió.En el modo Insertar / Normal, cuando el cursor está dentro del alcance de un entorno / comando, al presionar
<Shift>+<F5>/<F7>
aparecerá un menú para cambiar el entorno / comando .Asignaciones de teclas misceláneas
`a
a`z
y capitales correspondientes.`8
for\infty
,`<
for\le
,`I
for\int_{<++>}^{<++>}<++>
, etc."
dos veces se obtienen un par de comillas dobles TeX. Entonces, para escribir"
caracteres literales , debe usar.\item
etiqueta adecuada .\left
\right
pares por`(
,`[
y`{
.Tex_FoldedSections
,Tex_FoldedMisc
, yTex_FoldedEnvironments
.A veces, las asignaciones incorporadas simplemente han ido demasiado lejos o no dejan lo que quieres. Puede anular las asignaciones incorporadas redefiniéndolas en
after/ftplugin/tex.vim
:Establecer motor de compilación múltiple
Siempre necesito cambiar entre
pdflatex
yxelatex
motor. Por lo tanto, tengo las siguientes líneas en mi.vimrc
:Ver PDF, búsqueda hacia adelante y hacia atrás entre Vim y el visor de PDF
Este es un tema complicado y complicado. Con cierto visor de PDF y cierta suerte , puede ser muy fácil. Pero es principalmente una cuestión de búsqueda en Google.
Sugerencias
En general, creo que funcionará bien si está dispuesto a invertir algo de tiempo para domar a la bestia. Dicho esto, si tuviera el tiempo y el conocimiento adecuado, seguramente reduciré las funciones generales y exploraré las posibilidades de integración con otros complementos.
Referencias
fuente