Vim 写 C/C++ 的配置
.vimrc 2018/08/08 更新
- 基本的配置,缩进显示行号等
- 给每个 C/C++ 文件添加头部,显示作者,文件创建时间
- F5 编译执行 C/C++源代码
- Ctrl + F 利用用 astyle 格式化代码
- 使用 clang_complete 对代码进行补全
注: clang_complete 需要vim支持python,可以使用vim –version查看是否有+python(3)的选项,没有的话重装vim
set number
syntax on
" -- New file .h .c .cpp, add file header --
autocmd BufNeWFile *.[ch],*.cpp exec ":call CFileHeader()"
func CFileHeader()
call setline(1, "// File: ".strftime(expand('%d')))
call append(line("."), "// Author: xianhui (definezxh@163.com)")
call append(line(".")+1, "// Date: " .strftime("%Y/%m/%d %H:%M:%S"))
call append(line(".")+2, "")
exec "$"
endfunc
" -- .c .cpp .h file indent --
autocmd BufEnter *.[ch],*.cpp exec ":call CFileIndent()"
func CFileIndent()
set cindent
set tabstop=4
set softtabstop=4
set expandtab
set shiftwidth=4
endfunc
" -- Use Astyle to format code, <Ctrl + F> --
func CodeFormat()
exec "w"
if &filetype == "h"
exec "!astyle -n --style=kr -s4 %"
elseif &filetype == "c"
exec "!astyle -n --style=kr -s4 %"
elseif &filetype == "cpp"
exec "!astyle -n --style=google %"
endif
endfunc
map <C-F> :call CodeFormat() <CR>
" -- F5 compile and run code --
func CompileC()
exec "w"
let compilecmd = "!clang "
if search("math\.h") != 0
let compileflag .= "-lm"
endif
exec compilecmd." % ".compileflag
endfunc
func CompileCpp()
exec "w"
let compilecmd = "!clang++ "
let compileflag = ""
exec compilecmd." % ".compileflag
endfunc
func CompileRun()
exec "w"
if &filetype == "c"
exec "call CompileC()"
elseif &filetype == "cpp"
exec "call CompileCpp()"
endif
exec "! ./a.out"
endfunc
map<F5> <ESC> :call CompileRun() <CR>
" use clang_complete complete code
let g:clang_library_path = '/usr/lib/llvm-3.8/lib'
"let g:clang_library_path = 'usr/lib64/libclang.so.3.8'
Vim 写 C/C++ 的配置的更多相关文章
- 就是要用Vim写Vue
Vim关于Vue的生态链还是很少,不过凑活凑活还是能用的. 缩进 缩进采用的是两个空格,.vimrc配置: au BufNewFile,BufRead *.html,*.js,*.vue set ta ...
- vim 常用插件功能跟配置
在之前的公司,一直是使用别人配置好的vim 环境,他当时配置的功能很强大,查看源码的时候,非常的方便.至少我一直都是用它来看源码,从来没有使用过source insight.现在换了工作,但之前养成的 ...
- Vim 写 iOS App
Vim 写 iOS App 我们都知道 Vim 和 Emacs 都是文本编辑器中的上古神器,你也许用 ctags,cscopes 配合 Vim 完成过大型 C 或者 C++ 的开发,你也许配合过其他插 ...
- 使用Vim写LaTeX代码(Vim+Vimtex+Skim)
最近在写博客的时候发现对数学公式的支持并不好,于是就想寻找一个解决方案.我本身是一个爱折腾的人,有时尽管有现成的解决方案我有事也不愿意去用.于是多方查找资料,想寻求一个自定义的解决方案,最终把自己的目 ...
- vim学习、各类插件配置与安装
vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...
- feign三:覆写feign的默认配置及feign的日志
feign三:覆写feign的默认配置及feign的日志 默认配置复写 本项目地址:http://192.168.1.103:7601 本例是通过feign调用 eureka项目中的/eureka/a ...
- 转载 - Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)
出处:http://www.cnblogs.com/ifantastic/p/3185665.html Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LT ...
- linux常用终端指令+如何用vim写一个c程序并运行
在装好ubuntu之后今天学习了一些linux的一些基础知识: windows里面打开命令窗口是win+r,在linux系统里面,ctrl+alt+t打开终端,今天的一些指令都是围绕终端来说的 首先s ...
- linux下用vim写Python自动缩进的配置
#首先用 find / -name vimrc 找到vimrc文件#一般在 /etc/vimrc#进入vimrc后加入以下命令 set number set autoindent set shiftw ...
随机推荐
- YTU 2715: 函数---判断某年某月某日是这一年中的第几天
2715: 函数---判断某年某月某日是这一年中的第几天 时间限制: 1 Sec 内存限制: 128 MB 提交: 380 解决: 155 题目描述 在主程序(main)中输入某年某月某日,例如2 ...
- 【Hnoi2013】Bzoj3143 游走
Position: http://www.lydsy.com/JudgeOnline/problem.php?id=3143 List Bzoj3143 Hnoi2013 游走 List Descri ...
- [HNOI2006]潘多拉的宝盒
https://www.zybuluo.com/ysner/note/1250303 题面 给定\(s\)个自动机,如果某个自动机\(A\)能产生的所有串都能在自动机\(B\)中产生(即走相同\(0/ ...
- codeforces 764D
脑洞 很早以前没有补掉的题目 四色问题肯定使有解的,然后就是怎么构造.注意到边长是奇数,那么我们就可以分类,按左上角坐标的奇偶性分类,正好对应四种颜色.因为当两个矩形左上角横纵坐标奇偶性不同时,那么肯 ...
- 67.员工职位变动js
1.员工职位jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- Django - 自定义请求头
收藏一下以后学习 博客搬运地址 Django接收自定义http header(转)
- 苹果树(线段树+Dfs序)
1228 苹果树 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在卡卡的房子外面,有一棵苹果树.每年的春天,树上总 ...
- Context的正确使用
一.Context的作用 Context的最大作用就是我们可以通过传递它来获得其他Activity或Application的相关资源和方法,它就相当于它们的引用,我们通过引用来获得对象的封装,这也是我 ...
- JSP所需要掌握的部分
JSP基本语法 指令 <%@ 指令%> JSP指令是JSP的引擎 主要的两种指令是page和include(taglib) <%@ page import="java.ut ...
- 关于linux下的.a文件与 .so 文件
连续几天终于将一个又一个问题解决了,这里说其中一个问题 描述问题:使用多线程pthread的时候,(我用的IDE,CODEBOLCKS)编译后发现直接弹出窗口,程序还没有被Build..巴拉巴拉,然后 ...