Vim一键编译C++源码

咳咳,仅仅是简单的编译文件啦。打造成IDE什么的就算了。(本文来自一个OIer)

本来用着VScode的Vim插件,感觉VScode自带一个终端还挺方便的,界面也很美观。感觉Vim是真的好用(自从用了Vim的插件,在Windows的DevC++下老是按Esc

然而老年电脑带不起VScode...
考虑了Sublime,感觉也带不起Sublime...

于是转Vim,但是还要开个终端,每次还要输入那么多命令编译运行(虽然也可以用方向键,但也觉得很麻烦)感觉很麻烦。而且我需要看编译错误信息来改代码。网上看了看,似乎不太适合我。就研究了一下用户手册,大概搞了个这样的东西。

大致思路是把错误信息重定向到一个文件并打开它

”把F9键映射为 :call Compile()<CR>(即输入冒号调用Complite()函数按回车(<CR>)确认)
map <F9> :call Compile()<CR>
" 同理
map <F10> :call Run()<CR>

func! Compile()
    " 如果已经加载了error文件,我们先把它关掉,不然等下会出现询问是否重新加载此文件
    if bufloaded("error")
        ” Ctrl+W+h移动到error并输入:q!退出error文件
        execute "normal \<C-W>h"
        exec ':q!'
    endif
    " 如果是c++文件,执行相应的编译命令其中%代表当前文件全名,%:r代表当前文件名不加后缀>&表示重定向
    if &filetype == 'cpp'
        exec '!g++ % -Wall -Wno-parentheses -Wno-unused-result -o %:r >& error'
    endif
    " 从左边出现错误信息,55指定宽度
    exec ':55vs error'
    " 打开后光标停留在error,我们把它右移回源代码的位置
    execute ":normal \<C-w>l" 
endfunc

" 运行命令(直接在Vim里运行的)
func! Run()
    if &filetype == 'cpp'
        exec '!./%:r'
    endif
endfunc

效果大概是这样:

编译前:

按下<F8>编译

按下<F10>运行

:立个flag,今天开始尽量更新博客

猜你喜欢

转载自www.cnblogs.com/lsq647vsejgfb/p/9689273.html