zoukankan      html  css  js  c++  java
  • 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'
  • 相关阅读:
    uniapp 画圆形或多边形雷达图
    uniApp开发之公用配置文件common.js
    FastAdmin 表格排序
    fastadmin SelectPage field显示多个字段
    PHP装饰器模式
    PHP原型模式,(理解:创建并初始化对象,再复制一个对象避免重复初始化)
    PHP设计模式-观察者模式
    为什么 echo 3 . print(2) . print(4) . 5 . 'c'的结果是45c2131
    PHP数组式访问接口ArrayAccess用法分析
    浏览器兼容性问题总结
  • 原文地址:https://www.cnblogs.com/shuqin/p/9450800.html
Copyright © 2011-2022 走看看