
Я установилvim-latex (он же latex-suite)Плагин ViM и начал его настраивать. Единственное, чего я не могу найти, так это возможность выполнять автоматическую перекомпиляцию каждый раз, когда .tex
редактируемый мной файл записывается на диск (т. е. каждый раз, когда я использую команду :w
ViM). Это было бы очень полезно для меня, так как я использую его zathura
для просмотра pdf, и он поддерживает автоматическое обнаружение изменений и отображает обновленный pdf-файл.
Кто-нибудь знает, как добиться такого эффекта с помощью этого плагина?
Заранее спасибо.
решение1
Стандартная привязка, используемая vim-latexsuite, \ll
делает call Tex_RunLaTeX()
. Если вы хотите, чтобы VIM делал что-то каждый раз после записи файла, вы можете использовать autocmd BufWritePost
, затем вы можете указать filepattern, который должен соответствовать записанному файлу, чтобы ограничить область действия этого autocmd
, например, *.tex
а затем вызывать функции VIM. Таким образом, вы можете поместить следующее в свой .vimrc
:
autocmd BufWritePost *.tex call Tex_RunLaTeX()
Если вы не хотите, чтобы это произошлокаждыйПри сохранении файла может быть хорошей идеей создать пользовательскую привязку, которая сохраняет файл (при необходимости), а затем вызывает функцию, запускающую LaTeX, например, можно использовать:
nmap <leader>m :up<cr>:call Tex_RunLaTeX()<cr>
Это создаст сопоставление в обычном режиме, которое обновляет файл (то есть записывает, если были изменения), а после обновления вызывает Tex_RunLaTeX()
. С вашей текущей конфигурацией это сопоставление будет включено \m
( <leader>
— это настраиваемый ключ, который используется для многих привязок, по умолчанию это обратная косая черта, вы можете изменить <leader>
с помощью let mapleader="<whatever>"
, что также повлияет на привязки vim-latexsuite).