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'
  • 相关阅读:
    sopt:一个简单的python最优化库
    条件GAN论文简单解读
    python PIL 图像处理库简介(一)
    python自动制作gif并添加文字
    github+hexo搭建博客
    haskell简明入门(一)
    DCGAN 代码简单解读
    手机浏览器 H5直播
    js获取网页的宽高
    vue 对象赋值 对象身上已经有了属性,但是视图层并没有更新该数据 问题
  • 原文地址:https://www.cnblogs.com/shuqin/p/9450800.html
Copyright © 2011-2022 走看看