• 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'
  • 相关阅读:
    [C#]画图全攻略(饼图与柱状图)(转)
    ZedGraph控件的使用
    android PopupWindow实现从底部弹出或滑出选择菜单或窗口
    那两年炼就的Android内功修养
    android添加edittext后布局就不好用
    第三方应用分享到微信朋友圈功能
    android的微信签名
    Android开源库
    Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
    android 显示特殊符号
  • 原文地址:https://www.cnblogs.com/shuqin/p/9450800.html
Copyright © 2020-2023  润新知