所以我使用的是 gvim编辑器 用C++编程,但是当我打开一个 .cpp
文件,然后在编辑器上输入 :!g++ -std=C++17 file.cpp -o file
我得到这个错误:请看下面的附件。
C:\Windows\system32\cmd.exe /c(g++ -std=c++17 file.cpp - o file)
g++: error: file.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated
这是和vim有关,还是和我的命令有关?
先谢谢你了。
看来你很不幸地使用了没有正确配置gnumake的gcc-mingw(:let $CXXFLAGS='-std=c++17 -Wall -Werror'
+ make %<
否则就够了)。) 因此你要手动做一些事情。而且不要把参数拼错到g++。并且忘记 :!{compilername}
,这是我们25年前用vi必须要做的。与vi不同,vim允许集成编译。
" to do once
:let &makeprg='g++ -std=c++17 -Wall -Werror % -o %<'
" to execute each time to compile
:make
:copen
" to navigate the errors
:cc " jump to error under cursor
:cnext " jump to next error
:cprev " jump to previous error
:cclose " close the quickfix window
-> :h quickfix
这不应该在错误的目录下执行g++. 如果还是这样,请运行 :cd %:h
.
执行应与 :./%
.
如果你希望有热键,...
nnoremap <silent> <F7> :<c-u>update<cr>:make<cr>
nnoremap <silent> <C-F5> :<c-u>./%<cr>
nnoremap <silent> <F3> :<c-u>cnext<cr>
nnoremap <silent> <S-F3> :<c-u>cprev<cr>
只有在有错误时才自动打开快速修复窗口,或者只有在没有错误时才执行结果,这需要一个 多劳多得.