![映射命令与在 vim 终端中写入命令不同](https://linux22.com/image/1572696/%E6%98%A0%E5%B0%84%E5%91%BD%E4%BB%A4%E4%B8%8E%E5%9C%A8%20vim%20%E7%BB%88%E7%AB%AF%E4%B8%AD%E5%86%99%E5%85%A5%E5%91%BD%E4%BB%A4%E4%B8%8D%E5%90%8C.png)
我正在尝试使用 vimrc 中的映射来执行命令。如果我直接在 vim 终端中输入该命令,该命令会起作用,但是当我使用相同的命令时,它会在第一个空格后停止输入。确切的命令是:
:map <f8> :new | 0read !javac %<CR>
当我手动将命令输入 vim 时,编译器的输出让我非常痛苦,而这正是我想要的。但是当我按下 F8 时,它只会输入内容:new
而不会输入任何其他内容。我认为问题在于命令中的空格。我尝试过在命令周围使用引号和转义字符,但这些都无法解决问题。我该如何修改 vimrc 以使此命令正常工作?
答案1
您需要使用<bar>
管道符号来代替:
:map <f8> :new<bar>0read !javac %<CR>