Non posso fare paragoni, poiché Vim-LaTeX è l'unico plug-in LaTeX che ho usato. Uso Vim-LaTeX da quasi un anno. Quindi parlerò solo di Vim-LaTeX.
Ci sono molte funzioni presenti in Vim-LaTeX. Non li ricordo tutti. Parlerò solo di funzionalità che conosco e utilizzo costantemente.
Nota: questa è la mia esperienza utente limitata , che può essere molto fuorviante . Non sono un utente esperto di Vim. E non so nulla di Vimscript.
IMAP () e <C-j>Jumpping
IMAP()Le funzioni di funzione e <C-j>jumpping sono fornite separatamente come plugin imaps.vimnel bundle Vim-LaTeX. Sono potenti funzionalità e potrebbero essere molto utili anche quando non si scrive LaTeX.
IMAP()La funzione fornisce un modo più naturale per eseguire mappature della modalità di inserimento e modelli in generale rispetto a quelli incorporati imape iabbrev, IMO.
<C-j>il jumpping è utilizzato da molte funzionalità di completamento di Vim-LaTeX. Un punto di salto è indicato da <++>.
I mapping dei tasti della modalità di inserimento incorporati sono implementati come IMAP()chiamate. Ad esempio, puoi trovare un lungo elenco di IMAP()chiamate utili nel main.vimfile:
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")
...
Quindi quando digiti dire (), il cursore si posizionerà automaticamente tra parentesi, sostituendo il primo <++>. Dopo aver finito di digitare all'interno, calcia <C-j>e batti, il cursore si sposterà da parentesi e continuerai a digitare in avanti. Una volta abituato, inizia a formare un flusso di battitura che crea dipendenza ...
Vedete dall'alto, una \left \rightcoppia può essere digitata facilmente con una doppia corsa della sua parentesi di apertura. E il <C-j>salto fa scorrere la digitazione.
Un grosso problema IMAP()e la <C-j>cosa è che rovinano la tua ultima cronologia delle modifiche . (Un bug che desidero correggere a lungo.) Pertanto, potresti provare un comportamento imprevisto quando provi a ripetere l'ultima modifica .se la "presunta ultima modifica" contiene queste chiamate di funzione.
Puoi eseguire tutti i tipi di mappature utilizzando IMAP(), dalle semplici mappature dei tasti a modelli più complessi. Ecco alcuni esempi dei miei mapping ( 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 fatto interessante riguardo al imaps.vimplugin è che si tratta di un plugin globale, il che implica il suo potenziale utilizzo al di là di LaTeX. In effetti, utilizzo <++>e <C-j>jumppings (combinandoli con altri plug-in) per creare modelli di frammenti di codice in C.
<F5> <F7> Inserimento di comandi e ambienti
Uno svantaggio IMAP()è che la combinazione di tasti non può più essere utilizzata nel testo normale (a meno che non si annulli la mappatura di u). Nei casi che si desidera solo per innescare la mappatura come si desidera, l' <F5>e <F7>tornare utile. Questi due tasti vengono utilizzati rispettivamente per l' attivazione di ambienti e l'inserimento di comandi inline. E si comportano diversamente in base alla modalità e alle personalizzazioni dell'utente.
In modalità Inserisci / Normale, quando il cursore sta attaccando una parola o si trova nella parola, premendo <F5>per impostazione predefinita si inserirà un ambiente di base del modulo
\begin{word}
<Cursor>
\end{word}<++>
basato sulla parola; premendo <F7>per impostazione predefinita verrà inserito un comando in linea di base del modulo \word{}<++>basato sulla parola.
"Per impostazione predefinita", intendo che puoi personalizzare il comportamento di una parola specifica quando attivato da <F5>/ <F7>. Ecco alcune delle mie impostazioni ( .vimrc):
let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
let g:Tex_Com_latex = "{\\LaTeX}<++>"
let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
In modalità Inserisci / Normale, quando il cursore non è attaccato a nulla (ovvero solo ), premendo <F5>/ <F7>verrà richiesto un menu per selezionare l'ambiente / comando da inserire. Oppure puoi digitare il nome dell'ambiente / comando desiderato in basso. Personalmente, lo uso raramente <F5>/ in <F7>questo modo.
Premere <F5>/ <F7>dopo aver selezionato visivamente un pezzo di testo verrà richiesto un menu per avvolgere il testo . Quindi il testo selezionato verrà inserito nell'ambiente / comando selezionato o digitato.
In modalità Inserisci / Normale, quando il cursore si trova nell'ambito di un ambiente / comando, premere <Shift>+<F5>/<F7>richiederà un menu per cambiare ambiente / comando .
Mappature chiave varie
- Lettere greche.
`aa `ze capitali corrispondenti.
- Simboli come
`8for \infty, `<for \le, `Ifor \int_{<++>}^{<++>}<++>, ecc.
- Premendo
"due volte si ottengono un paio di virgolette doppie TeX. Quindi, per digitare il "carattere letterale , devi usare.
- Premendo in diversi ambienti di enumerazione si inserirà il
\itemtag appropriato .
- È possibile avvolgere parte della matematica visivamente selezionata in
\left \rightcoppia per `(, `[e `{.
- La piegatura è personalizzabile. Tre di controllo variabile globale ciò che può essere piegato:
Tex_FoldedSections, Tex_FoldedMisc, e Tex_FoldedEnvironments.
A volte i mapping incorporati sono andati troppo oltre o non sono usciti da ciò che desideri. Puoi sovrascrivere i mapping integrati ridefinendoli in 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')
Imposta motore di compilazione multipla
Ho sempre bisogno di passare da pdflatexe xelatexmotore. Quindi, ho le seguenti righe nel mio .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>
Visualizza PDF, ricerca avanti e indietro tra Vim e il visualizzatore PDF
Questo è un argomento disordinato e complicato. Con un certo visualizzatore di PDF e una certa fortuna , può essere molto semplice. Ma è principalmente una questione di ricerca su Google.
suggerimenti
- Dovresti trovare il tuo equilibrio tra la via LaTeX e la via Vim-LaTeX.
- Vim-LaTeX non è affatto leggero. Ci sono alcune caratteristiche e / o mappature dei tasti che probabilmente non utilizzerai mai e devi sostituirle manualmente.
- Usi Vim. Sai cosa significa pazienza . :-)
Nel complesso, penso che funzionerà bene se sei disposto a investire del tempo per domare la bestia. Detto questo, se avessi tempo e conoscenze adeguate, finirò sicuramente per ridurre le funzionalità generali ed esplorare i potenziali dell'integrazione con altri plugin.
Riferimenti
vimtexpuò lavorare fianco a fiancoLatex-Suite, il che significa che puoi ottenere il meglio dei due plugin contemporaneamente . :)