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>
saltos
IMAP()
La función y <C-j>
las funciones de salto se proporcionan por separado como un complemento imaps.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 integrada imap
y iabbrev
, 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 de IMAP()
llamadas útiles en el main.vim
archivo:
call IMAP ('__', '_{<++>}<++>', "tex")
call IMAP ('()', '(<++>)<++>', "tex")
call IMAP ('[]', '[<++>]<++>', "tex")
call IMAP ('{}', '{<++>}<++>', "tex")
...
call IMAP ('((', '\left( <++> \right)<++>', "tex")
call IMAP ('[[', '\left[ <++> \right]<++>', "tex")
call IMAP ('{{', '\left\{ <++> \right\}<++>', "tex")
...
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
):
call IMAP('*EEQ',"\\begin{equation*}\<CR><++>\<CR>\\end{equation*}<++>",'tex')
call IMAP('DEF',"\\begin{definition}[<++>]\<CR><++>\<CR>\\end{definition}<++>",'tex')
call IMAP('BIC','\binom{<++>}{<++>}<++>','tex')
call IMAP('PVERB','\PVerb{<++>}<++>','tex')
call IMAP('VERB','\verb|<++>|<++>','tex')
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 entornos
Una desventaja IMAP()
es que la combinación de teclas ya no se puede usar en texto normal (a menos que deshaga la asignación u
). 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 formulario
\begin{word}
<Cursor>
\end{word}<++>
basado 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
):
let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
let g:Tex_Com_latex = "{\\LaTeX}<++>"
let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
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
- Letras griegas.
`a
a `z
y capitales correspondientes.
- Símbolos como
`8
for \infty
, `<
for \le
, `I
for \int_{<++>}^{<++>}<++>
, etc.
- Al presionar
"
dos veces se obtienen un par de comillas dobles TeX. Entonces, para escribir "
caracteres literales , debe usar.
- Al presionar en varios entornos de enumeración se insertará la
\item
etiqueta adecuada .
- Puede ajustar parte de las matemáticas visualmente seleccionada en
\left
\right
pares por `(
, `[
y `{
.
- Plegable es personalizable. Tres de control variable global lo que se puede plegar:
Tex_FoldedSections
, Tex_FoldedMisc
, y Tex_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
:
call IMAP('`|','\abs{<++>}<++>','tex')
call IMAP('ETE',"\\begin{table}\<CR>\\centering\<CR>\\caption{<+Caption text+>}\<CR>\\label{tab:<+label+>}\<CR>\\begin{tabular}{<+dimensions+>}\<CR><++>\<CR>\\end{tabular}\<CR>\\end{table}<++>",'tex')
call IMAP('==','==','tex')
call IMAP('`\','`\','tex')
Establecer motor de compilación múltiple
Siempre necesito cambiar entre pdflatex
y xelatex
motor. Por lo tanto, tengo las siguientes líneas en mi .vimrc
:
"switch to pdflatex
function SetpdfLaTeX()
let g:Tex_CompileRule_pdf = 'pdflatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lp :<C-U>call SetpdfLaTeX()<CR>
"switch to xelatex
function SetXeLaTeX()
let g:Tex_CompileRule_pdf = 'xelatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lx :<C-U>call SetXeLaTeX()<CR>
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
- Debe encontrar el equilibrio entre la forma LaTeX y la forma Vim-LaTeX.
- Vim-LaTeX no es ligero en absoluto. Hay algunas características y / o asignaciones de teclas que posiblemente nunca usará y debe anularlas manualmente.
- Usas Vim. Ya sabes lo que significa la paciencia . :-)
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
vimtex
puede trabajar en paraleloLatex-Suite
, lo que significa que puede obtener lo mejor de los dos complementos al mismo tiempo . :)