微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,今天开始尽量更新博客

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐