2

У меня есть скрипт BASH, который перекомпилирует латексный документ и снова открывает его, используя мое средство чтения PDF, когда буфер записывается обратно. Команда в моем .vimrc выглядит так:

autocmd BufWritePost *.tex !~/scripts/latex_update.sh %

Это хорошо работает, но читатель всегда открывает PDF на первой странице. Это неудобно, так как мне нужно прокрутить, чтобы посмотреть изменения, которые я только что сделал. Я хотел бы установить переменную VIM с именем 'page_num' и передать ее в качестве второго аргумента в мой скрипт.

Я пробовал это в VIM:

:let g:page_num=2

Затем я изменил свой 'autocmd' на:

 autocmd BufWritePost *.tex !~/scripts/latex_update.sh % g:page_num

Однако глобальная переменная page_num не заменяется своим значением. Как я могу заставить VIM передать значение page_num?

Спасибо!

1 ответ1

2

Использование :exe для раскрытия переменной перед выполнением остальной команды должно работать:

autocmd BufWritePost *.txt exe '!~/scripts/latex_update.sh %' g:page_num

Обратите внимание , что вам не нужно сцепить . Или поставить пробел перед g:page_num :exe делает , что в рамках расширения аргумента.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .