.vimrc配置文件 + gvim 运行 gnome-terminal 完成后等待

if has("gui_running")
    let g:isGUI=1
else
    let g:isGUI=0
endif

set clipboard=unnamed
syntax on

set autoindent
"set smartindent
set cindent

set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab

set showmatch

set ruler
set nu

colorscheme desert

set guifont=DejaVu Sans Mono 14

" < F5> 编译C
map <f5> :call CompileGcc()<cr>
func! CompileGcc()
    exec "w"
    exec "!gcc % -o %< -Wall"
endfunc

"< F5> 编译C++
map <f5> :call CompileGpp()<cr>
func! CompileGpp()
    exec "w"
    exec "!g++ % -o %< -Wall"
endfunc


"< F6> 运行C/C++
map <f6> :call RunGccGpp()<cr>
func! RunGccGpp()
    if g:isGUI
        exec "!gnome-terminal -x bash -c './%<;echo '任意键返回.';read'"
        redraw!
    else
        exec "!./%<"
    endif
endfunc


"< F9> 编译运行C
map <f9> :call ComplieRunGcc()<cr>
func! ComplieRunGcc()
    exec "w" 
    exec "!gcc % -o %< -Wall"
    if g:isGUI
        exec "!gnome-terminal -x bash -c './%<;echo '任意键返回.';read'"
        redraw!
    else
        exec "!./%<"
    endif
endfunc

"< F9> 编译运行C++
map <f9> :call ComplieRunGpp()<cr>
func! ComplieRunGpp()
    exec "w" 
    exec "!g++ % -o %< -Wall"
    if g:isGUI
        exec "!gnome-terminal -x bash -c './%<;echo '任意键返回.';read'"
        redraw!
    else
        exec "!./%<"
    endif
endfunc


配置文件



gvim运行时 每次都是运行完直接退出 结果看不到 很不爽

而双击cpp又不能默认用vim打开

所以网上找到了这个帖子


http://jakfruit.blog.163.com/blog/static/173859395201101183532283/

Linux下如何保持gnome-terminal窗口执行命令后停留而不立刻关闭(gnome-terminal -x)  

为了让和我有同样问题的人也能找到这个问题的解决办法,我特意将标题弄得很长。
  解决方法如下:

username@Ubuntuz:~$ gnome-terminal -x bash -c "echo "OK now"; read"

  其中bash -c <string>即运行后面的字串符代表的命令,而分号(;)有执依次执行多个命令的作用,执行read则等待用户按下回车后使窗口关闭。


利用gnome-terminal -x 运行 bash -c 

bash -c可以一下传入很多命令 所以就可以read等待用户输入

好机智啊!


原文地址:https://www.cnblogs.com/abgnwl/p/6550328.html