Сопоставление одного ключа с несколькими командами в vim
Я понимаю, что для выполнения нескольких команд в одной строке, например save и execute pdflatex
, я могу сделать следующее.
:w | !pdflatex %:t
Обратите внимание, что %:t
дает вам текущее имя файла (без пути). Этот код отлично работает в Vim. Теперь, если я хочу отобразить все выше, скажем, ctrl + shift + F6, я бы хотел сделать следующее
:nnoremap <C-S-F6> :w | !pdflatex %:t<CR>
Но это не работает и дает мне следующую ошибку.
:!pdflatex paper.tex<CR>
/bin/bash: -c: line 0: syntax error near unexpected token `newline'
/bin/bash: -c: line 0: `pdflatex paper.tex<CR>'
Означает ли это, что я не могу сопоставить ctrl + shift + F6 с желаемой функцией, сохранить и выполнить pdflatex
? Что я могу сделать, чтобы обойти это?
Ответы
Ответ 1
Предполагая, что <C-S-F6>
работает (это, вероятно, не будет в CLI Vim), вы должны выйти из панели или вместо этого использовать <bar>
:
:nnoremap <C-S-F6> :w \| !pdflatex %:t<CR>
:nnoremap <C-S-F6> :w <bar> !pdflatex %:t<CR>
См. :help map_bar
.