【发布时间】:2020-10-10 14:33:06
【问题描述】:
我主要使用 vim 作为 C/C++ 编程的编辑器。不幸的是,我对构建过程的工作方式不太满意。我知道可以输入(或映射到键):make 来运行 make 过程。不过,我不喜欢这个命令的工作方式,因为它在同一个终端窗口中运行构建过程而没有正确突出显示。因此,我通常在第二台显示器的另一个窗口中运行 make 命令,这样我既可以正确突出显示,又可以查看编译器在一个窗口中显示的构建错误,同时在我的主 vim 窗口中滚动源代码。这也很繁琐,因为它需要我将焦点转移到另一个窗口,然后输入 make 命令。
现在,我的问题如下:是否可以让 vim 在另一个窗口中运行 make 命令而无需更改焦点?这样,我可以将“在其他窗口中构建”命令映射到 vim 中的某个键,并且只需按一下键即可实现所有这些。
我的系统是 Manjaro Linux,i3 作为 DWM。
(我不确定是在unix论坛还是这里发布,如果发错论坛请见谅。)
【问题讨论】:
-
这有帮助吗:vim.fandom.com/wiki/… ?
-
您使用
cmake标签,但您的问题注释make实用程序。那么,您实际询问的是哪个实用程序,CMake 还是 Make?它们是不同的东西。 -
最糟糕的是,你可以在你的第二个窗口中运行一个 shell 脚本,在一个循环中,等待一些东西(试图读取命名管道(cf
mkfifo)?)在运行你的彩色make或其他之前,然后你只需在vim中创建一个映射来触发它(例如写入管道)。 -
从你的问题中看不出来,所以我会问:你知道
:help quickfix吗? -
我在我的 BTW 插件中添加了对 coloured error messages 的强制支持——目前仅在
project分支中。编译在 Vim 中完成(具有:make的异步风格),焦点不会转到 quickfix (vim) 窗口,并且解释 gcc 生成的转义码。需要安装三个插件。