微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我明白,为了在一行中执行多个命令,例如保存并执行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?我能做些什么来解决这个问题?

假设< 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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐