由于所有内容都是32位的,因此我使用了:set makeprg=mingw32-make
,然后尝试通过:!make
进行编译,这给出了以下错误消息:
'make'不被识别为内部或外部命令,可操作程序或批处理文件。
shell返回1
我尝试了基本的“再见世界”内容:
#include <iostream>
int main() {
std::cout << "Goodbye World";
return 0;
}
我在做什么错?除了是菜鸟。
答案 0 :(得分:1)
:!make
未运行'makeprg'
。它运行make
。由于您专门尝试运行mingw32-make.exe
,因此大概没有名为make.exe
的可执行文件。 (请参见:help :!
)
:make
运行'makeprg'
。 (请参见:help :make
,:help 'makeprg'
)
我的目标是通过控制台或终端或任何可观察的方式观看“再见世界”。是否需要对
_vimrc
文件进行其他修改?
您希望通过修改makefile来实现。 :make
的所有参数都将传递给'makeprg'
。如果您定义了目标clean
(以删除Make制品)或run
(以执行Make的产品),则可以在其中写入:mak clean
或:mak run
Vim运行这些目标。显然,您可以创建自己的命令和/或映射来使这些:make
命令更快。
答案 1 :(得分:0)
请注意(我自己完全忽略了这一点,愚蠢的我),当您运行一个简单的代码(例如上面的代码)时,不需要大量的文件管理和Makefile,您所要做的就是:!gcc %
对于C和:!g++ %
对于C ++。我相信(也许是错的,但这是一个简单的观察结果),在Vim中,:!
指示以下命令将在系统命令提示符中执行,而gcc/g++
是要调用的命令分别针对C和C ++的GNU编译器。最后,%
用于指示当前文件名,所有扩展名均保持不变。正如我通过以下操作所做的那样,这在键盘映射的情况下非常有用:
nnoremap <F5> :!g++ %<CR>|"Press Func.5 to Compile via GNU Comp.