vim直接编译C++源文件和sudo技巧

在vim中编辑完代码,还需要退出用命令行上gcc g++ 编译文件。可不可以直接在vim中编译呢?有的。在.vimrc中加入如下配置

au BufEnter *.cpp set makeprg=g++\ -g\ -Wall\ -O3\ --std=c++2a\ %\ -o\ %<
au BufEnter *.c set makeprg=gcc\ -g\ -Wall\ -O3\ %\ -o\ %<
au BufWritePost *.c silent make
au BufWritePost *.cpp silent make

假定在编辑a.cpp,这时在vim中 “:w” 时,如果代码正确,将在当前目录生成名为 a 的可执行文件,如果编译有错,vim会提示。

vim编辑系统文件如配置时,常常忘记用sudo vim启动,这时普通用户保存文件时会提示是只读的。我以前常常另外再sudo vim,重新编辑,把宝贵的已经完成的工作需要重做一次。其实不用再次编辑,用如下方法:

:w !sudo tee %

可成功保存当前改动到文件。很好用吧。

Posted 2019-07-18