Sử dụng VIM để chuyển các tùy chọn cho trình đọc PDF


2

Tôi có một tập lệnh BASH biên dịch lại tài liệu latex và mở lại bằng trình đọc PDF của tôi khi bộ đệm được ghi lại. Lệnh trong '.vimrc' của tôi trông như thế này:

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

Điều này hoạt động tốt, nhưng người đọc luôn mở tệp PDF đến trang đầu tiên. Điều này thật bất tiện vì tôi phải cuộn để xem xét những thay đổi tôi vừa thực hiện. Tôi muốn đặt biến VIM có tên 'page_num' và chuyển nó làm đối số thứ hai cho tập lệnh của mình.

Tôi đã thử điều này trong VIM:

:let g:page_num=2

Sau đó tôi đã thay đổi 'autocmd' thành:

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

Tuy nhiên, biến 'page_num' toàn cầu không được thay thế bằng giá trị của nó. Làm cách nào tôi có thể nhận VIM để vượt qua giá trị của 'page_num'?

Cảm ơn!

Câu trả lời:


2

Sử dụng :exeđể mở rộng biến trước khi thực hiện phần còn lại của lệnh sẽ hoạt động:

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

Lưu ý rằng bạn không cần ghép nối ( .toán tử) hoặc đặt dấu cách trước g:page_numđó vì :exeđó là một phần của việc mở rộng đối số của nó.


Bạn nên sử dụng shellescape(expand('%'))thay vì chỉ %trong trường hợp tệp có khoảng trắng hoặc một số ký tự lạ khác.
FDinoff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.