映射命令与在 vim 终端中写入命令不同

映射命令与在 vim 终端中写入命令不同

我正在尝试使用 vimrc 中的映射来执行命令。如果我直接在 vim 终端中输入该命令,该命令会起作用,但是当我使用相同的命令时,它会在第一个空格后停止输入。确切的命令是:

:map <f8> :new | 0read !javac %<CR>

当我手动将命令输入 vim 时,编译器的输出让我非常痛苦,而这正是我想要的。但是当我按下 F8 时,它只会输入内容:new而不会输入任何其他内容。我认为问题在于命令中的空格。我尝试过在命令周围使用引号和转义字符,但这些都无法解决问题。我该如何修改 vimrc 以使此命令正常工作?

答案1

您需要使用<bar>管道符号来代替:

:map <f8> :new<bar>0read !javac %<CR>

相关内容