Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从gVim打开终端 我想知道是否有一种方法可以在GVIM中编译一个C++文件,然后通过按下一个按钮来运行它,并用相应的CPP.out文件打开一个终端。_C++_Vim_Terminal - Fatal编程技术网

从gVim打开终端 我想知道是否有一种方法可以在GVIM中编译一个C++文件,然后通过按下一个按钮来运行它,并用相应的CPP.out文件打开一个终端。

从gVim打开终端 我想知道是否有一种方法可以在GVIM中编译一个C++文件,然后通过按下一个按钮来运行它,并用相应的CPP.out文件打开一个终端。,c++,vim,terminal,C++,Vim,Terminal,现在,我在.vimrc中有两行代码用于编译和运行: map <F5> :<C-U>!g++ -O2 -DLOCAL -std=c++11 -Wall -Wextra -Wno-unused-result -static %:r.cpp -o %:r<CR> map <F9> :<C-U>!./%:r<CR> map:!g++-O2-DLOCAL-std=c++11-Wall-Wextra-Wno未使用的结果-静态%:r.c

现在,我在.vimrc中有两行代码用于编译和运行:

map <F5> :<C-U>!g++ -O2 -DLOCAL -std=c++11 -Wall -Wextra -Wno-unused-result -static %:r.cpp -o %:r<CR>
map <F9> :<C-U>!./%:r<CR>
map:!g++-O2-DLOCAL-std=c++11-Wall-Wextra-Wno未使用的结果-静态%:r.cpp-o%:r
地图:!./%:R
但当我按F9键时,它会在gVim中运行我的脚本,我希望它在linux终端上打开。

您可以更改

map <F9> :<C-U>!./%:r<CR>
map:!./%:R

map:!x终端仿真器-e./%:r-保持
事实上,你可以使用任何你喜欢的终端。只需检查如何将命令传递到终端。在大多数情况下,它是
-e

-保持
是保持终端不消失

要了解更多信息,请阅读您可以更改的

map <F9> :<C-U>!./%:r<CR>
map:!./%:R

map:!x终端仿真器-e./%:r-保持
事实上,你可以使用任何你喜欢的终端。只需检查如何将命令传递到终端。在大多数情况下,它是
-e

-保持
是保持终端不消失


要了解更多信息,请阅读您的映射看起来有20年的历史。您可能不希望映射在可视模式下工作。它们更好地限制在正常模式、be nore映射,而且vim从一开始就集成了编译(与vi不同),请参见
:h quickfix

希望您安装了正确版本的gnumake(所有Linux系统,而不是mingw),您只需使用

" I wouldn't let no-unused-result out, nor use -static... but this is your choice
:let $CXXFLAGS = '-O2 -DLOCAL -std=c++11 -Wall -Wextra -Wno-unused-result -static'
" You also have $CFLAGS for C, $FFLAGS for Fortran (IIRC)...,
" and $LDFLAGS and $LDLIBS for libraries.

nnoremap <silent> <F5> :<c-u>make %<<cr>

" Also, you can use vim integrated terminal now
" or any other terminal, see vikram's answer
nnoremap <silent> <F9> :<c-u>vert term ./%<<cr>
“我不会让未使用的结果出来,也不会使用-static…但这是您的选择
:让$cxflags='-O2-DLOCAL-std=c++11-Wall-Wextra-Wno未使用的结果-静态'
“对于C,您还有$CFLAGS;对于Fortran(IIRC),您还有$FFLAGS…”。。。,
“对于库,$LDFLAGS和$LDLIBS。

nnoremap:make%您的映射看起来像是20年前的映射。您可能不希望这些映射在视觉模式下工作。它们最好限制在正常模式下,不使用映射,而且vim从一开始就集成了编译(与vi不同),请参见
:h quickfix

希望您安装了正确版本的gnumake(所有Linux系统,而不是mingw),您只需使用

" I wouldn't let no-unused-result out, nor use -static... but this is your choice
:let $CXXFLAGS = '-O2 -DLOCAL -std=c++11 -Wall -Wextra -Wno-unused-result -static'
" You also have $CFLAGS for C, $FFLAGS for Fortran (IIRC)...,
" and $LDFLAGS and $LDLIBS for libraries.

nnoremap <silent> <F5> :<c-u>make %<<cr>

" Also, you can use vim integrated terminal now
" or any other terminal, see vikram's answer
nnoremap <silent> <F9> :<c-u>vert term ./%<<cr>
“我不会让未使用的结果出来,也不会使用-static。。。但这是你的选择
:让$cxflags='-O2-DLOCAL-std=c++11-Wall-Wextra-Wno未使用的结果-静态'
“对于C,您还有$CFLAGS;对于Fortran(IIRC),您还有$FFLAGS…”。。。,
“对于库,$LDFLAGS和$LDLIBS。

nnoremap:make%它可以工作,但是当我运行我的文件并在按“enter”键后输入输入时,它关闭终端,并且我看不到de输出,这可能是什么问题?很抱歉回复得太晚。如果问题仍未解决,则按照建议进行操作。您是否添加了-hold选项或与该操作相关的任何内容?它可以工作,但当我运行文件并在按“enter”键后输入输入时,它会关闭终端,而我看不到de output,这可能是什么问题?很抱歉,回复太晚。如果问题仍未解决,则按照建议进行操作。您是否添加了保留选项或与该操作相关的任何内容?