vim 打造C++开发环境

vim 打造C++开发环境

文章转自这里

安装pathogen

项目地址: https://github.com/tpope/vim-pathogen

$ mkdir -p ~/.vim/autoload ~/.vim/bundle 
$ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

~/.vimrc中加入以下内容:

execute pathogen#infect()

安装auto-pairs

项目地址: https://github.com/jiangmiao/auto-pairs

$ git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs

安装NERDTree

项目地址: https://github.com/scrooloose/nerdtree

git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle

打开方式:

  1. 在vim命令模式下输入NEEDTree

  2. ~/.vimrc中设置自定义快捷键Ctrl+n

    map <C-n> :NERDTree<CR>
    

安装MiniBufExplorer

项目地址: http://www.vim.org/scripts/script.php?script_id=159

$ mkdir -p ~/.vim/bundle/minibufexplorer/plugin && wget "http://www.vim.org/scripts/download_script.php?src_id=3640" -O ~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim

vimrc中加入以下内容:

let g:miniBufExplMaxSize = 2

安装ctags+taglist+omnicppcomplete

ctags

现在基本上Linux都会自带,没有安装的自行摸索

安装完成之后在项目根目录下建立索引语句:

$ ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

taglist

项目地址: http://www.vim.org/scripts/script.php?script_id=273

$ cd ~/.vim/bundle && wget "http://www.vim.org/scripts/download_script.php?src_id=19574" -O taglist.zip && unzip taglist.zip -d taglist

打开~/.vimrc进行配置:

    let Tlist_Show_One_File=1    " 只展示一个文件的taglist
    let Tlist_Exit_OnlyWindow=1  " 当taglist是最后以个窗口时自动退出
    let Tlist_Use_Right_Window=1 " 在右边显示taglist窗口
    let Tlist_Sort_Type="name"   " tag按名字排序

OmniCppComplete

项目地址: http://www.vim.org/scripts/script.php?script_id=1520

$ cd ~/.vim/bundle && wget "http://www.vim.org/scripts/download_script.php?src_id=7722" -O omnicppcomplete.zip && unzip omnicppcomplete.zip -d omnicppcomplete

打开~/.vimrc进行配置:

filetype plugin indent on
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2     " search namespaces in the current buffer   and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表
let OmniCpp_MayCompleteScope = 1    " 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]

由于是依赖ctags使用前需要更新索引(项目根目录下使用)

$ ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

对STL模板库的补全:

$ mkdir -p ~/.vim/tags && cd ~/.vim/tags && wget "http://www.vim.org/scripts/download_script.php?src_id=9178" -O - | tar jxvf -

打开~/.vimrc进行配置:

set tags+=~/.vim/tags/cpp_src/tags

SuperTab

项目地址: https://github.com/ervandew/supertab

$ cd ~/.vim/bundle && git clone https://github.com/ervandew/supertab.git

最终配置文件

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
" debian.vim

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
set nocompatible

" Vim5 and later versions support syntax highlighting. Uncommenting the
" following enables syntax highlighting by default.
if has("syntax")
syntax on " 语法高亮
endif
colorscheme ron " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下

" detect file type
filetype on
filetype plugin on

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
"have Vim load indentation rules and plugins according to the detected filetype
filetype plugin indent on
endif

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.

"set ignorecase " 搜索模式里忽略大小写

"set smartcase " 如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。

set autowrite " 自动把内容写回文件: 如果文件被修改过,在每个:next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。

set autoindent " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置

"set smartindent " 智能对齐方式

set tabstop=4 " 设置制表符(tab键)的宽度

set softtabstop=4 " 设置软制表符的宽度

set shiftwidth=4 " (自动) 缩进使用的4个空格

set cindent " 使用 C/C++ 语言的自动缩进方式

set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s "设置C/C++语言的具体缩进方式

"set backspace=2 " 设置退格键可用

set showmatch " 设置匹配模式,显示匹配的括号

set linebreak " 整词换行

set whichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去

"set hidden " Hide buffers when they are abandoned

set mouse=a " Enable mouse usage (all modes) "使用鼠标

set number " Enable line number "显示行号

"set previewwindow " 标识预览窗口 set history=50 " set command history to 50 "历史记录50条 "--状态行设置-- set laststatus=2 " 总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行 set ruler " 标尺,用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。 "--命令行设置-- set showcmd " 命令行显示输入的命令 set showmode " 命令行显示vim当前模式 "--find setting-- set incsearch " 输入字符串就显示匹配点 set hlsearch


" 插件相关
execute pathogen#infect()


map <C-n> :NERDTree<CR>

let g:miniBufExplMaxSize = 2

let Tlist_Show_One_File=1    " 只展示一个文件的taglist
let Tlist_Exit_OnlyWindow=1  " 当taglist是最后以个窗口时自动退出
let Tlist_Use_Right_Window=1 " 在右边显示taglist窗口
let Tlist_Sort_Type="name"   " tag按名字排序

filetype plugin indent on
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2     " search namespaces in the current buffer   and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表
let OmniCpp_MayCompleteScope = 1    " 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]

set tags+=~/.vim/tags/cpp_src/tags

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值