
Ich habe installiertvim-latex (auch bekannt als Latex-Suite)Ich habe das ViM-Plugin heruntergeladen und angefangen, es anzupassen. Eine Sache, die ich nicht finden kann, ist die Möglichkeit, jedes Mal eine automatische Neukompilierung durchzuführen, wenn die .tex
Datei, die ich bearbeite, auf die Festplatte geschrieben wird (also jedes Mal, wenn ich den :w
ViM-Befehl verwende). Das wäre für mich sehr nützlich, da ich es zathura
zum Anzeigen von PDFs verwende und es die automatische Erkennung von Änderungen unterstützt und die aktualisierte PDF-Datei anzeigt.
Weiß jemand, wie man diesen Effekt mit diesem Plugin erzielt?
Dank im Voraus.
Antwort1
Die von der vim-latexsuite verwendete Standardbindung \ll
tut dies call Tex_RunLaTeX()
. Wenn Sie möchten, dass VIM jedes Mal etwas tut, nachdem eine Datei geschrieben wurde, können Sie die verwenden autocmd BufWritePost
. Sie können dann ein Dateimuster angeben, das mit der geschriebenen Datei übereinstimmen muss, um den Umfang dieser einzuschränken autocmd
, z. B. *.tex
und dann Funktionen von VIM aufrufen. Sie könnten also Folgendes in Ihre einfügen .vimrc
:
autocmd BufWritePost *.tex call Tex_RunLaTeX()
Wenn Sie das nicht möchtenjedenWenn Sie eine Datei speichern, empfiehlt es sich möglicherweise, eine benutzerdefinierte Bindung zu erstellen, die Ihre Datei (falls erforderlich) speichert und dann die Funktion aufruft, die LaTeX ausführt. Sie könnten beispielsweise Folgendes verwenden:
nmap <leader>m :up<cr>:call Tex_RunLaTeX()<cr>
Dadurch wird im Normalmodus eine Zuordnung erstellt, die die Datei aktualisiert (also schreibt, wenn es Änderungen gab) und nach der Aktualisierung aufruft Tex_RunLaTeX()
. Mit Ihrer aktuellen Konfiguration wäre diese Zuordnung aktiviert \m
( <leader>
ist ein konfigurierbarer Schlüssel, der für viele Bindungen verwendet wird, standardmäßig ist er ein Backslash, Sie können ihn <leader>
durch die Verwendung ändern let mapleader="<whatever>"
, was sich auch auf die Bindungen von vim-latexsuite auswirken würde).