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'
  • 相关阅读:
    大量 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理
    点击按钮保存当前页面为图片html2canvas
    浅谈webpack优化
    nginx配置
    table表格边框线问题
    git push到指定仓库
    No bean named 'xxx' is defined错误,原因及解决方案
    关于The requested list key 'map' could not be resolved as a collection/array/map/enumera...
    Tomcat网页加载过慢的排查调整time_wait连接过多
    MySQL information_schema 系统库
  • 原文地址:https://www.cnblogs.com/shuqin/p/9450800.html
Copyright © 2011-2022 走看看