Je ne peux pas faire de comparaison, car Vim-LaTeX est le seul plugin LaTeX que j'ai utilisé. J'utilise Vim-LaTeX depuis presque un an. Je vais donc parler de Vim-LaTeX seul.
De nombreuses fonctionnalités sont présentes dans Vim-LaTeX. Je ne me souviens pas de tous. Je vais juste parler des fonctionnalités que je connais et utilise constamment.
Remarque: Voici mon expérience utilisateur limitée , ce qui peut être très trompeur . Je ne suis pas un utilisateur expérimenté de Vim. Et je ne sais rien de vimscript.
IMAP () et <C-j>
Jumpping
IMAP()
Les fonctions et fonctions de <C-j>
sauts sont fournies séparément en tant que plug-in imaps.vim
dans le groupe Vim-LaTeX. Ce sont des fonctionnalités puissantes et pourraient être très utiles même lorsque vous n’écrivez pas LaTeX.
IMAP()
function fournit un moyen plus naturel de faire des mappages et des modèles en mode insertion en général que les fonctions intégrées imap
et iabbrev
, IMO.
<C-j>
le saut est utilisé par de nombreuses fonctionnalités de complétion Vim-LaTeX. Un point de saut est indiqué par <++>
.
Les mappages de touches intégrés en mode insertion sont implémentés en tant IMAP()
qu'appels. Par exemple, vous pouvez trouver une longue liste d’ IMAP()
appels utiles dans un main.vim
fichier:
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")
...
Ensuite, lorsque vous tapez say ()
, le curseur résidera automatiquement entre les parenthèses, remplaçant le premier <++>
. Une fois que vous avez fini de taper à l'intérieur, vous donnez des coups de pieds <C-j>
et de poings, le curseur quittera la parenthèse et vous continuerez à taper. Une fois que vous êtes habitué, il commence à former un flux de dactylographie qui crée une dépendance ...
Vous voyez ci-dessus, une \left
\right
paire peut être facilement saisie avec un double trait de son support d’ouverture. Et les <C-j>
sauts facilitent la frappe.
Un pépin majeur de IMAP()
et <C-j>
chose est que ils bousille votre dernière histoire de changement . (Un bogue que je souhaite corriger depuis longtemps.) Par conséquent, vous pouvez rencontrer un comportement inattendu lorsque vous essayez de rétablir votre dernière modification .
si votre "supposée dernière modification" contient ces appels de fonction.
Vous pouvez faire toutes sortes de mappages en utilisant IMAP()
, des mappages de clés simples aux gabarits plus complexes. Voici quelques exemples de mes mappages ( 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 fait intéressant à propos du imaps.vim
plugin est qu’il s’agit d’un plugin global, ce qui implique une utilisation potentielle au-delà de LaTeX. En effet, j’utilise <++>
et <C-j>
jarretières (combinaison avec d’autres plugins) pour construire des modèles d’extraits de code en C.
<F5> <F7>
Insertion de commandes et d'environnements
Un inconvénient IMAP()
est que la combinaison de touches ne peut plus être utilisée en texte normal (à moins d’annuler le mappage u
). Dans les cas où vous souhaitez simplement déclencher le mappage à votre guise, le <F5>
et vous serez <F7>
utile. Ces deux clés servent à déclencher des environnements et à insérer des commandes en ligne, respectivement. Et ils se comportent différemment selon le mode et les personnalisations de l'utilisateur.
En mode Insertion / Normal, lorsque le curseur attache un mot ou est dans le mot, le fait d’appuyer <F5>
insérera par défaut un environnement de base du formulaire.
\begin{word}
<Cursor>
\end{word}<++>
basé sur le mot; appuyez sur <F7>
pour insérer par défaut une commande en ligne de base du formulaire en \word{}<++>
fonction du mot.
"Par défaut", je veux dire que vous pouvez personnaliser le comportement d'un mot spécifique lorsqu'il est déclenché par <F5>
/ <F7>
. Voici quelques-uns de mes paramètres ( .vimrc
):
let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
let g:Tex_Com_latex = "{\\LaTeX}<++>"
let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
Dans Insertion / mode normal, lorsque le curseur est pas attaché à quoi que ce soit (aka seul ), en appuyant sur <F5>
/ <F7>
invitera à vous un menu pour sélectionner l' environnement / commande à insérer. Ou vous pouvez taper le nom de l’environnement / commande souhaité en bas. Personnellement, j'utilise rarement <F5>
/ de <F7>
cette façon.
Appuyez sur <F5>
/ <F7>
après avoir sélectionné visuellement un morceau de texte, un menu apparaîtra pour envelopper le texte . Ensuite, le texte sélectionné sera encapsulé dans l'environnement / la commande que vous avez sélectionnée ou saisie.
En mode Insertion / Normal, lorsque le curseur se trouve dans la portée d'un environnement / d'une commande, appuyez sur pour <Shift>+<F5>/<F7>
afficher un menu permettant de modifier l'environnement / la commande .
Divers mappages de clés
- Lettres grecques.
`a
aux `z
capitales correspondantes.
- Symboles comme
`8
pour \infty
, `<
pour \le
, `I
pour \int_{<++>}^{<++>}<++>
, etc.
- Un
"
double appui donne une paire de guillemets TeX. Donc, pour taper un "
caractère littéral , vous devez utiliser.
- En appuyant sur dans plusieurs environnements d'énumération, vous insérez la
\item
balise appropriée .
- Vous pouvez encapsuler une partie des mathématiques sélectionnée visuellement
\left
\right
par `(
, `[
et `{
.
- Le pliage est personnalisable. Trois contrôle variable globale ce qui peut être plié:
Tex_FoldedSections
, Tex_FoldedMisc
et Tex_FoldedEnvironments
.
Parfois, les mappages intégrés vont trop loin ou ne renoncent pas à ce que vous voulez. Vous pouvez remplacer les mappages intégrés en les redéfinissant dans 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')
Définir plusieurs moteurs de compilation
J'ai toujours besoin de basculer entre pdflatex
et xelatex
moteur. Ainsi, j'ai les lignes suivantes dans mon .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>
Afficher les fichiers PDF, les recherches en avant et en arrière entre Vim et le visualiseur PDF
C'est un sujet compliqué et compliqué. Avec une certaine visionneuse PDF et une certaine chance , cela peut être très facile. Mais c'est surtout une question de recherche sur Google.
Suggestions
- Vous devriez trouver votre équilibre entre la méthode LaTeX et la méthode Vim-LaTeX.
- Vim-LaTeX n'est pas du tout léger. Il existe certaines fonctionnalités et / ou mappages de clés que vous n'utiliserez probablement jamais et vous devez les remplacer manuellement.
- Vous utilisez Vim. Vous savez ce que signifie patience . :-)
Dans l’ensemble, je pense que cela fonctionnera bien si vous êtes prêt à investir un peu de temps pour apprivoiser la bête. Cela étant dit, si j'avais le temps et les connaissances nécessaires, je vais certainement affiner les fonctionnalités et explorer le potentiel de l'intégration avec d'autres plugins.
Les références
vimtex
pouvez travailler côte à côteLatex-Suite
, ce qui signifie que vous pouvez obtenir le meilleur des deux plugins en même temps . :)