清除VIM中旧外部命令的输出

时间:2012-11-16 10:47:40

标签: vim

使用时! {vd} 在vim中,默认情况下不会清除上一个命令的输出。例如,我在VIM中执行了两个外部命令:!制作! GCC 。当我输入时! gcc ,上一个命令的输出!包括make


user@desktop:~$ vim 

make: *** No targets specified and no makefile found.  Stop.

shell returned 2

Press ENTER or type command to continue
gcc: fatal error: no input files
compilation terminated.

shell returned 4

Press ENTER or type command to continue

我希望vim清除这些旧输出,以便我可以清楚地查看当前命令的输出,你能为此提供任何建议吗?

2 个答案:

答案 0 :(得分:3)

您可以先运行/usr/bin/clear .e.g。

:!clear && make

或者,您可以使用this tip打开新的暂存缓冲区。

答案 1 :(得分:0)

通过将.vimrc中的shell变量设置为可以随意创建的脚本路径,可以将vim执行所有命令包含在任意脚本中。要添加到.vimrc的行:

set shell=~/.vim/shell-wrapper.sh

然后在命名脚本中,您可以在运行最初请求的命令之前调用clear。最小内容~/.vim/shell-wrapper.sh

#!/bin/bash
clear
shift # strip the -c that vim adds to bash from arguments to this script
eval $@

你可以在这里找到我的完整配置:https://github.com/timabell/dotmatrix(可能会随着时间的推移而改变;写作时的最后一次提交是https://github.com/timabell/dotmatrix/commit/1098fcbcbcefa67b7a59d7a946cda1730db8ad8b