在外壳上的vim上编译

问题描述

我以前在Windows上使用vim / gvim,而用于编译的旧.vimrc部分如下所示:

autocmd filetype cpp nnoremap <F5> :w <bar> !g++ -std=c++11 -Wall % -o %:r && %:r.exe <CR>

在Windows上,当我按f5键时,将打开一个外壳程序(windows cmd)并执行它。

但是现在我开始在Linux上使用vim / gvim,当我按f5键时,它在内置的shell上运行。有没有办法在外壳上运行?我只是可以通过输入:! gnome-terminal打开外部外壳,但是如何使用g ++ main.cpp -o main,javac Main.java && java Main(无论如何)之类的编译器命令自动打开外壳

我正在寻找解决方案一段时间哈哈

我还在提高我的英语水平,欢迎批评我!

解决方法

autocmd filetype cpp nnoremap <F4> :w <bar> exec '!g++ '.shellescape('%').' -o '.shellescape('%:r').' && ./'.shellescape('%:r')<CR>

尝试一下!

顺便说一句,也许here您会找到有用的信息吗:)