4

使用时!vim 中的{cmd} ,默认不清除上一条命令的输出。例如,我在 vim 中执行了两个外部命令:! 制作!海湾合作委员会。当我打字的时候!gcc,前一个命令的输出!包括


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 清除这些旧输出,以便我可以清楚地查看当前命令的输出,您能提供任何建议吗?

4

2 回答 2

4

你可以/usr/bin/clear先运行.eg

:!clear && make

或者,您可以使用此提示打开一个新的暂存缓冲区。

于 2012-11-16T10:50:56.783 回答
1

.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

于 2014-03-19T00:28:34.107 回答