zoukankan      html  css  js  c++  java
  • VIM-->c/c++编程环境搭建

    建立基本的文件及目录结构

    "建立vim的基本设置文件
     vim ~/.vimrc  
    "建立插件目录,所有的插件都有各自的文件夹存在.vim目录下
     mkdir ~/.vim  
    ;让vundle接管.vim的插件管理
     git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim   

    基本设置

    " 定义快捷键的前缀,即<Leader>
    let mapleader=";"
    "开启文件类型检测
    filetype on        
    "根据检测到的类型加载不同的插件    
    filetype plugin on      
    
    "让配置文件的更改立即生效
    autocmd BufWritePost ${MYVIMRC} source ${MYVIMRC}  
    
     " 开启实时搜索功能
    set incsearch                                 
     " 搜索时大小写不敏感
    set ignorecase  
    " 高亮显示搜索结果
    set hlsearch         
     " 关闭兼容模式                         
    set nocompatible   
     " vim 自身命令行模式智能补全                      
    set wildmenu   
     
    " 总是显示状态栏
    set laststatus=2
    " 显示光标当前位置
    set ruler
    " 开启行号显示
    set number
    " 高亮显示当前行/列
    set cursorline
    set cursorcolumn
    
    " 开启语法高亮功能
    syntax enable
    " 允许用指定语法高亮配色方案替换默认方案
    syntax on         
    
    " 自适应不同语言的智能缩进
    filetype indent on
    " 将制表符扩展为空格
    set expandtab
    " 设置编辑时制表符占用空格数
    set tabstop=4
    " 设置格式化时制表符占用空格数
    set shiftwidth=2
    " 让 vim 把连续数量的空格视为一个制表符
    set softtabstop=4
     
    " 基于缩进或语法进行代码折叠
    "set foldmethod=indent
    set foldmethod=syntax
    " 启动 vim 时关闭折叠代码
    set nofoldenable          
    "za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠
    " vundle 环境设置
    filetype off
    set rtp+=~/.vim/bundle/Vundle.vim
    " vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
    call vundle#begin()
    
    "避免PluginClean把自己卸载了                                                                                
    Plugin 'VundleVim/Vundle.vim'  
    
    " 插件列表结束
    call vundle#end()
    filetype plugin indent on
    
    "安装插件,先找到其在 github.com 的地址,再将配置信息其加入 .vimrc   "中的call vundle#begin() 和 call vundle#end() 之间,最后进入 vim 执行
    ":PluginInstall 便可自动安装
    
    "要卸载插件,先在 .vimrc 中注释或者删除对应插件配置信息,然后在 vim  "中执行:PluginClean 便可卸载对应插件
    
    "批量更新,只需执行:PluginUpdate

     常用插件

    ctags

    ctags用于在编辑代码时能够快速定位标识符。

    配置步骤如下:

    1、在当前工程根目录下使用" ctags-R ."生成一个tags文件

    2、在.vimrc中加入tags路径 "set tags=~/proj/tags"

    3、加入头文件搜寻路径 "set path+=~/pro/include*"(可以用两个星号"**"代替一个星号,代表遍历的向下寻找,简单粗暴)

    使用步骤如下:

    CRTL+] 跳转到本文件定义处
    CRTL+T 跳转回原来位置
    :help helptags 帮助文件
    g+CRTL+] 跳转到外部引用定义处

    taglist

    taglist基于ctags生成的tags文件,产生当前文件标识符列表,可以一目了然文件结构和快速跳转。

    配置步骤如下:

    "实时显示符号定义插件
    Plugin 'vim-scripts/taglist.vim'
    
    """"""taglist""""""""
    "ctags位于PATH目录下,所以可以省略具体路径
    let Tlist_Ctags_Cmd='ctags'
    "不同时显示多个文件的tag,只显示当前文件的
    let Tlist_Show_One_File=1
    "设置taglist的宽度
    let Tlist_WinWidth =40
    "如果taglist窗口是最后一个窗口,则退出vim
    let Tlist_Exit_OnlyWindow=1
    "在右侧窗口中显示taglist窗口
    let Tlist_Use_Right_Window=1
    "在左侧窗口中显示taglist窗口
    "let Tlist_Use_Left_Windo =1  
    "启动vim后自动打开
     let Tlist_Auto_Open=1

    使用步骤如下:

    <CR> 跳转光标所指定义处
    o 以分隔窗口的形式跳转到定义处
    :help taglist.txt 帮助文件

    nerdtree:

    nerd类似windows下的资源浏览器,可以快速浏览并打开文件

    配置步骤如下:

    "浏览文件结构插件
    Plugin 'scrooloose/nerdtree'
    
    """"""NERDTree""""""""""
    "启动vim时自动打开NERDTree
    autocmd VimEnter * NERDTree
    " 设置NERDTree子窗口宽度
    let NERDTreeWinSize=32
    " 设置NERDTree子窗口位置
    let NERDTreeWinPos="left"
    " 显示隐藏文件
    let NERDTreeShowHidden=1
    " NERDTree 子窗口中不显示冗余帮助信息
    let NERDTreeMinimalUI=1
    " 删除文件时自动删除文件对应 buffer
    let NERDTreeAutoDeleteBuffer=1

    使用步骤如下:

    u 进入上层目录
    <CR>

    打开文件或目录

    打开或折叠目录树

    MiniBufExplorer:

    以标签的方式显示vim打开的缓存,使得可以快速切换

    配置步骤如下:

    "同时编辑buffer插件
    Plugin 'fholgado/minibufexpl.vim'
    " buffer 切换快捷键
    map <leader>n :bn<CR>
    map <leader>p :bp<CR>

    操作步骤如下:

    ;n (;为前面定义的<leader>),循环向下切换标签
    ;p 循环向上切换标签

    airline

    airline可以让状态栏显示更多有用的信息。

    配置步骤如下

    "增强状态栏
    Plugin 'vim-airline/vim-airline'
    Plugin 'vim-airline/vim-airline-themes'
    """"""""airline""""""""
    //总是显示状态栏
    set laststatus=2

     clang_complete

    c/c++代码补全,并且具有语法检查

    配置步骤如下:

    Plugin 'Rip-Rip/clang_complete'   
    
    let g:clang_complete_copen=1
    let g:clang_periodic_quickfix=1
    let g:clang_snippets=1
    let g:clang_user_options='-std=c99'
    let g:clang_complete_optional_args_in_snippets=0
    let g:clang_auto_select=1 
    let g:clang_close_preview=1
    let g:clang_complete_macros=1 

    配置编译器

    需要在当前工程的根目录下新建文件".clang_complete",并在其中加入常规配置

    比如:

    加入头文件路径:-I ./include

    ctrlp

    用于快速查找并打开文档

    配置步骤如下:

    "文件查找                                                                                                    
    Plugin 'ctrlpvim/ctrlp.vim' 
    
    map <leader>f :CtrlP<CR> 

     cscope

    查看符号被调用

    配置步骤如下:

    #安装cscope
    sudo apt-get install cscope
    
    #在.vimrc下配置
    if has("cscope")
    set csto=0
    set cst
    set nocsverb
    " add any database in current directory  
    if filereadable("cscope.out") 
     cs add cscope.out  
    " else add database pointed to by environment 
    elseif $CSCOPE_DB != ""  
     cs add $CSCOPE_DB 
    endif 
    set csverb
    endif 
    
    map <leader>c :cs find 3 <C-R>=expand("<cword>")<CR><CR>
    
    #在当前项目根目录下使用
    cscope -Rbq
    #生成cscope.out, cscope.in.out, cscope.po.out
    

    注意:要在cscope.out所在文件夹启动vim,否则用cscope可能会出现找不到文件的错误。

    0或者s —— 查找这个符号
    1或者g —— 查找这个定义
    2或者d —— 查找被这个函数调用的函数(们)
    3或者c —— 查找调用这个函数的函数(们)
    4或者t —— 查找这个字符串
    6或者e —— 查找这个egrep匹配模式
    7或者f —— 查找这个文件
    8或者i —— 查找#include这个文件的文件(们)

     懒人配置(spf13)

    #1.安装带有python以及lua的vim
    sudo apt install vim-nox
    
    #2.安装spf13
    curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
    
    #3.安装youcompleteme
    #在home目录下,编辑文件“.vimrc.before.local”,并写入
    let g:spf13_bundle_groups=['general','youcompleteme','programming','misc']
    
    #4.退出后,重新启动vim,并运行命令
    :BundleInstall
    # 也可以在.vim/bundle下使用git拷贝
    git clone https://github.com/Valloric/YouCompleteMe
    
    #5.之后按照提示,反复安装需要的第三方包
    
    #6.进行编译
    ./install.py --clang-completer
    
    #7.在.vimrc.local中加入
    let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
    let g:ycm_confirm_extra_conf=0

     注意:

    需要在当前工程文件的根目录拷贝一份".ycm_extra_conf.py"文件,以对工程做单独设置。

  • 相关阅读:
    apache开启.htaccess及.htaccess的使用方法
    如何解决PHP startup: Unable to load dynamic library './php_mysql.dll 找不到指定的模块
    html判断IE版本
    php.ini 配置详解
    检测apache是否支持htaccess文件
    MySql my.ini 中文详细说明
    "安装SQL2005时出现“以前的某个程序安装在计算机上创建挂起文件操作,运行安装程序之前必须重新启动计算机
    iOS开发笔记-两种单例模式的写法
    SQL 2005此计算机上已经安装了同名实例
    win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
  • 原文地址:https://www.cnblogs.com/KcMeterCEC/p/5424605.html
Copyright © 2011-2022 走看看