我使用vim进行编码。当我必须编译当前文件时,目前我使用:!g++ % && ./a.out
或:make
。
当我按回车键并返回文件时,显示的错误/输出消失了。我希望错误和输出显示在旁边的垂直分割中。如果输出和错误流在不同的缓冲区中会很好。如何才能做到这一点?
我再次编译时应该更新错误和输出缓冲区,它不应该创建新的缓冲区。
怎么办呢?一些vim插件/功能?还是一个oneliner:P?
答案 0 :(得分:45)
答案 1 :(得分:-2)
如果要编译并运行,如果编译成功。 (即!g++ % && ./a.out
)
使用以下行创建一个shell脚本,
g++ $1 -o /tmp/a.out && /tmp/a.out
现在像这样设置makeprg。
set makeprg=compileNrun.sh\ %
由于&&
,无法将整个命令直接设置为makeprg。
如果直接在makeprg中设置,则上面的命令将扩展为,
!g++ file.C -o /tmp/a.out && /tmp/a.out 2>&1 | tee /tmp/errorFile
因此,如果编译失败,编译错误将不会重定向到错误文件; P &&
优先于|