当我使用:!
运行 shell 命令时,例如:
!echo hi
它同时打印 VimScript 命令及其输出,所以我得到:
:!echo hi
hi
当我在命令行模式下执行此操作时,这是可以的,但是当我通过.vim
文件运行它时,我不想看到它 - 我只想看到命令的结果。
有没有办法禁用 VimScript 命令的回显?
我知道我可以使用
echo system('echo hi')
但这会阻止我将它与交互式 shell 程序一起使用......
顺便说一句,我使用的是 Linux——在 Windows 中这并不是一个真正的问题,因为无论如何 shell 命令都在新的控制台窗口上运行......
编辑:
这是我的小工作示例:
function! RunShellTask(cmd)
execute '!'.a:cmd
return v:shell_error
endfunction
call RunShellTask('echo hi')
我运行它:source %