Ich kann keinen Vergleich anstellen, da Vim-LaTeX das einzige LaTeX-Plugin ist, das ich verwendet habe. Ich benutze Vim-LaTeX seit fast einem Jahr. Ich werde also nur über Vim-LaTeX sprechen.
Es gibt viele Funktionen , die in Vim-LaTeX. Ich kann mich nicht an alle erinnern. Ich werde nur über Funktionen sprechen, die ich kenne und ständig benutze.
Hinweis: Dies ist meine eingeschränkte Benutzererfahrung , die möglicherweise sehr irreführend ist . Ich bin kein erfahrener Vim-Benutzer. Und ich weiß nichts über Vimscript.
IMAP () und <C-j>
Jumpping
IMAP()
Die Funktionen function und <C-j>
jumpping werden separat als Plugin imaps.vim
im Vim-LaTeX-Bundle bereitgestellt . Sie sind leistungsstarke Funktionen und können sehr nützlich sein, auch wenn Sie nicht mit LaTeX arbeiten.
IMAP()
Die Funktion bietet eine natürlichere Möglichkeit, Einfügemodus-Zuordnungen und Vorlagen im Allgemeinen zu erstellen als die integrierte imap
und die iabbrev
IMO-Funktion.
<C-j>
Das Springen wird von vielen Vim-LaTeX-Vervollständigungsfunktionen verwendet. Ein Sprungpunkt ist durch gekennzeichnet <++>
.
Eingebaute Tastenzuordnungen im Einfügemodus werden als IMAP()
Anrufe implementiert . Beispielsweise finden Sie eine lange Liste nützlicher IMAP()
Anrufe in der main.vim
Datei:
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")
...
Wenn Sie dann say ()
eingeben, befindet sich der Cursor automatisch zwischen den Klammern und ersetzt die erste <++>
. Nachdem Sie die Eingabe beendet haben, treten <C-j>
und schlagen Sie, der Cursor bewegt sich aus der Klammer heraus und Sie tippen einfach weiter vorwärts. Sobald Sie sich daran gewöhnt haben, beginnt sich ein Schreibfluss zu bilden, der irgendwie süchtig macht ...
Sie sehen von oben, dass ein \left
\right
Paar leicht mit einem Doppelhub der öffnenden Klammer eingegeben werden kann. Und das <C-j>
Springen bringt das Tippen zum Fließen.
Ein großer Fehler von IMAP()
und <C-j>
ist, dass sie Ihre letzte Änderungshistorie durcheinander bringen . (Ein Fehler, den ich schon lange beheben möchte.) Daher kann es zu unerwartetem Verhalten kommen, wenn Sie versuchen, Ihre letzte Änderung zu wiederholen, indem .
Sie diese Funktionsaufrufe in Ihrer "vermuteten letzten Änderung" speichern.
Sie können alle Arten von Zuordnungen verwenden IMAP()
, von einfachen Tastenzuordnungen bis hin zu komplexeren Vorlagen. Hier sind einige Beispiele für meine Zuordnungen ( 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')
Eine interessante Tatsache über imaps.vim
Plugin ist, dass es sich um ein globales Plugin handelt, das seine potenzielle Verwendung über LaTeX hinaus impliziert. In der Tat verwende ich <++>
und <C-j>
Jumppings (in Kombination mit anderen Plugins), um Code-Snippet-Vorlagen in C zu erstellen.
<F5> <F7>
Einfügen von Befehlen und Umgebungen
Ein Nachteil IMAP()
ist, dass die Tastenkombination nicht mehr im normalen Text verwendet werden kann (es sei denn, Sie machen die Zuordnung rückgängig u
). In den Fällen, in denen Sie das Mapping nur wie gewünscht auslösen möchten, ist das <F5>
und <F7>
praktisch. Diese beiden Tasten dienen zum Auslösen von Umgebungen bzw. zum Einfügen von Inline-Befehlen. Und sie verhalten sich je nach Modus und Anpassungen des Benutzers unterschiedlich.
Wenn der Cursor im <F5>
Einfüge- / Normalmodus ein Wort anfügt oder sich im Wort befindet, wird durch Drücken von standardmäßig eine Basisumgebung des Formulars eingefügt
\begin{word}
<Cursor>
\end{word}<++>
basierend auf dem Wort; Durch Drücken von <F7>
wird standardmäßig ein grundlegender Inline-Befehl des Formulars \word{}<++>
basierend auf dem Wort eingefügt.
"Standardmäßig" bedeutet, dass Sie das Verhalten eines bestimmten Wortes anpassen können, wenn es von <F5>
/ ausgelöst wird <F7>
. Hier sind einige meiner Einstellungen ( .vimrc
):
let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
let g:Tex_Com_latex = "{\\LaTeX}<++>"
let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
In Insert / Normal - Modus, wenn die Cursor nicht an irgendetwas (aka angebracht allein ), Press- <F5>
/ <F7>
werden Sie aufgefordert , ein Menü zu Umwelt / Befehl zum Einsatz wählen. Oder Sie können den Namen der gewünschten Umgebung / des gewünschten Befehls unten eingeben. Persönlich benutze ich selten <F5>
/ auf <F7>
diese Weise.
Durch Drücken von <F5>
/ <F7>
nach dem visuellen Auswählen eines Textstücks wird ein Menü zum Umbrechen von Text angezeigt . Dann wird der ausgewählte Text in die von Ihnen ausgewählte oder eingegebene Umgebung / den Befehl eingeschlossen.
Wenn sich der Cursor im Einfüge- / Normalmodus im Bereich einer Umgebung / eines Befehls befindet, wird durch Drücken von <Shift>+<F5>/<F7>
ein Menü zum Ändern der Umgebung / des Befehls aufgerufen .
Verschiedene Tastenzuordnungen
- Griechische Buchstaben.
`a
zu `z
und entsprechende Hauptstädte.
- Symbole wie
`8
für \infty
, `<
für \le
, `I
für \int_{<++>}^{<++>}<++>
usw.
- Durch
"
zweimaliges Drücken erhalten Sie zwei TeX-Anführungszeichen. Um also wörtliche "
Zeichen einzugeben , müssen Sie verwenden.
- Wenn Sie in mehreren Enumerationsumgebungen drücken, wird das entsprechende
\item
Tag eingefügt.
- Sie können einen visuell ausgewählten Teil der Mathematik
\left
\right
paarweise mit `(
, `[
und einschließen `{
.
- Falten ist anpassbar. Drei globale Variable steuern , welche gefaltet werden kann:
Tex_FoldedSections
, Tex_FoldedMisc
, und Tex_FoldedEnvironments
.
Manchmal sind die eingebauten Zuordnungen einfach zu weit gegangen oder es wird nicht beendet, was Sie wollen. Sie können die integrierten Zuordnungen überschreiben, indem Sie sie neu definieren 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')
Stellen Sie die Multiple Compilation Engine ein
Ich muss immer zwischen pdflatex
und xelatex
Motor wechseln . Somit habe ich folgende Zeilen in meinem .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>
PDF anzeigen, Vorwärts- und Rückwärtssuche zwischen Vim und PDF-Viewer
Dies ist ein chaotisches und kompliziertes Thema. Mit einem bestimmten PDF-Viewer und einer gewissen Menge Glück kann es sehr einfach sein. Aber es geht hauptsächlich um die Google-Suche.
Vorschläge
- Sie sollten Ihr Gleichgewicht zwischen LaTeX Way und Vim-LaTeX Way finden.
- Vim-LaTeX ist überhaupt nicht leicht. Es gibt einige Funktionen und / oder Tastenzuordnungen, die Sie möglicherweise nie verwenden werden und die Sie manuell überschreiben müssen.
- Sie verwenden Vim. Sie wissen, was Geduld bedeutet. :-)
Insgesamt denke ich, dass es gut funktionieren wird, wenn Sie bereit sind, etwas Zeit zu investieren, um das Biest zu zähmen. Vorausgesetzt, ich habe Zeit und ausreichende Kenntnisse, werde ich mit Sicherheit die Overhead-Funktionen abschwächen und die Integrationsmöglichkeiten mit anderen Plugins untersuchen.
Verweise
vimtex
kann Seite an Seite arbeitenLatex-Suite
, was bedeutet, dass Sie gleichzeitig das Beste aus den beiden Plugins herausholen können . :)