在vim中将一个键映射到多个命令

在vim中将一个键映射到多个命令,vim,Vim,我理解,为了在一行中执行多个命令,例如保存并执行pdflatex,我可以执行以下操作 :w | !pdflatex %:t 请注意,%:t提供当前文件名(不带路径)。此代码在Vim中工作正常。现在,如果我想将上面的全部内容映射到,比如说ctrl+shift+F6,我希望能够执行以下操作 :nnoremap <C-S-F6> :w | !pdflatex %:t<CR> :nnoremap:w |!pdflatex%:t 但这不起作用,并给我以下的错误 :!pdfla

我理解,为了在一行中执行多个命令,例如保存并执行
pdflatex
,我可以执行以下操作

:w | !pdflatex %:t
请注意,
%:t
提供当前文件名(不带路径)。此代码在Vim中工作正常。现在,如果我想将上面的全部内容映射到,比如说ctrl+shift+F6,我希望能够执行以下操作

:nnoremap <C-S-F6> :w | !pdflatex %:t<CR>
:nnoremap:w |!pdflatex%:t
但这不起作用,并给我以下的错误

:!pdflatex paper.tex<CR>
/bin/bash: -c: line 0: syntax error near unexpected token `newline'
/bin/bash: -c: line 0: `pdflatex paper.tex<CR>'
:!pdflatex paper.tex
/bin/bash:-c:第0行:意外标记“newline”附近出现语法错误
/bin/bash:-c:0行:`pdflatex paper.tex'
这是否意味着我无法将ctrl+shift+F6映射到所需的函数、保存并执行
pdflatex
?我能做些什么来解决这个问题?

假设
确实有效(在CLI Vim中可能不起作用),您必须退出该栏或使用

:nnoremap <C-S-F6> :up \| !pdflatex %:t<CR>
:nnoremap <C-S-F6> :up <bar> !pdflatex %:t<CR>
:nnoremap:up\|!pdflatex%:t
:nnoremap:向上!pdflatex%:t

请参阅
:帮助映射栏

天哪,你是怎么知道的!?非常感谢你!
确实有效。我不知道clivim是什么。命令行界面Vim,与guivim相对。我知道,因为我遇到了同样的问题,在Vim的文档中找到了答案,并没有忘记它;非常感谢,它节省了我几个小时的研究