vimrc C/C++ ide

输入图片说明

"===================通用配置======================

"文件搜索路径
set path=.,/usr/include,,

" 控制
set nocompatible              "关闭vi兼容
filetype off                  "关闭文件类型侦测,vundle需要
set fileencodings=utf-8,gbk   "使用utf-8或gbk编码方式
syntax on                     "语法高亮
set backspace=2               "退格键正常模式
set whichwrap=<,>,[,]         "当光标到行首或行尾,允许左右方向键换行
set autoread                  "文件在vim外修改过,自动重载      
set nobackup                  "不使用备份
set confirm                   "在处理未保存或只读文件时,弹出确认消息   
set scrolloff=3               "光标移动到距离顶部或底部开始滚到距离
set history=1000              "历史记录数
set mouse=a                   "use鼠标
set selection=inclusive       "选择包含最后一个字符
set selectmode=mouse,key      "启动选择模式的方式
set completeopt=longest,menu  "智能补全,弹出菜单,无歧义时才自动填充
set noswapfile                "关闭交换文件
set hidden                    "允许在有未保存的修改时切换缓冲区
set showmatch					"设置匹配模式
set autoindent					"设置C/C++方式自动对齐
set cindent

set nobackup					"设置取消备份 禁止临时文件的生成
set noswapfile
"显示
colorscheme mycolor           "选择配色方案
set t_Co=256                  "可以使用的颜色数目
set number                    "显示行号
set laststatus=2              "显示状态行
set ruler                     "显示标尺
set showcmd                   "显示输入的命令
set showmatch                 "高亮括号匹配
set matchtime=1               "匹配括号高亮的时间(十分之一秒)
set matchpairs={:},(:),[:]    "匹配括号"{}""()""[]"
set hlsearch                  "检索时高亮匹配项
set incsearch                 "边检索边显示匹配
set cursorline              " 突出显示当前行  

let NERDTreeWinPos='left'		"窗口位置
let NERDTreeWinSize=31			"窗口宽度
let NERDTreeMinimalUI=1			"不显示'Bookmarks' label 'Press ? for help'

"格式
set noexpandtab               "不要将tab转换为空格
set shiftwidth=4              "自动缩进的距离,也是平移字符的距离
set tabstop=4                 "tab键对应的空格数
set autoindent                "自动缩进
set smartindent               "智能缩进



"功能函数
function! UpdateCtags()
    let curdir=getcwd()
    while !filereadable("./tags")
        cd ..
        if getcwd() == "/"
            break
        endif
    endwhile
    if filewritable("./tags")
        !ctags -R --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q
        TlistUpdate
    endif
    execute ":cd " . curdir
endfunction

"===================按键映射======================

nnoremap <silent> <F4> :NERDTreeToggle<CR>
nmap <F10> :call UpdateCtags()<CR>

"使用Ctrl-l 和 Ctrl+h 切换标签页
nnoremap <C-l> gt            
nnoremap <c-h> gT

"在行末加上分号
nnoremap <silent> <Leader>; :<Esc><End>a<Space>;<Esc><Down>
"保存
nnoremap <C-s> :w<CR>
"替换
nnoremap <C-h> :%s/<C-R>=expand("<cword>")<CR>/<C-R>=expand("<cword>")<CR>


"自动启动
autocmd VimEnter * NERDTree
autocmd BufWritePost *.c,*.h,*.cpp call UpdateCtags()




"===================插件管理======================
" 下载vundle
" git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
" 下载pathogen
" curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
" 将vundle加入到runtime path
set rtp+=~/.vim/bundle/Vundle.vim

" 下载到bundle目录的插件
call vundle#begin()

" plugin on GitHub repo
Plugin 'VundleVim/Vundle.vim'
Plugin 'scrooloose/nerdtree'				"提供展示文件/目录列表的功能,比自带的文件浏览器要好很多
Plugin 'Xuyuanp/nerdtree-git-plugin'

Plugin 'taglist.vim'						"用来提供单个源代码文件的函数列表之类的功能

Plugin 'Lokaltog/vim-powerline'				"状态栏显示
Plugin 'garbas/vim-snipmate'				"一些代码片段
Plugin 'tomtom/tlib_vim'
Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'honza/vim-snippets'

Plugin 'scrooloose/nerdcommenter'			"提供快速注释/反注释代码块的功能
Plugin 'ervandew/supertab'					"代码补全

Plugin 'vim-airline/vim-airline'			"底部切换文件
Plugin 'vim-airline/vim-airline-themes'

Plugin 'Chiel92/vim-autoformat'				"格式化代码
Plugin 'vim-syntastic/syntastic'			"代码拼写检查

Plugin 'fholgado/minibufexpl.vim'			"多文档编辑

Plugin 'EasyGrep'

" Git plugin not hosted on GitHub
" Plugin 'git://...'
" git repos on your local machine
" Plugin 'file://...'

call vundle#end()

filetype plugin on "允许插件  
filetype plugin indent on    " required

"===================插件配置======================
"-----pathogen-----
execute pathogen#infect() 

"********************************************************
"                      NERD_Tree 配置                   *
"********************************************************
let NERDChristmasTree=1						"显示增强
let NERDTreeAutoCenter=1					"自动调整焦点
let NERDTreeMouseMode=2						"鼠标模式:目录单击,文件双击
"let NERDTreeQuitOnOpen=1					"打开文件后自动关闭
let NERDTreeShowFiles=1						"显示文件
let NERDTreeShowHidden=1					"显示隐藏文件
let NERDTreeHightCursorline=1				"高亮显示当前文件或目录
let NERDTreeShowLineNumbers=1				"显示行号
let NERDTreeWinPos='left'					"窗口位置
let NERDTreeWinSize=31						"窗口宽度
let NERDTreeMinimalUI=1						"不显示'Bookmarks' label 'Press ? for help'
let g:NERDTreeCaseSensitiveSort = 1
let g:nerdtree_tabs_open_on_console_startup=1
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
    \ "Staged"    : "✚",
    \ "Untracked" : "✭",
    \ "Renamed"   : "➜",
    \ "Unmerged"  : "═",
    \ "Deleted"   : "✖",
    \ "Dirty"     : "✗",
    \ "Clean"     : "✔︎",
    \ 'Ignored'   : '☒',
    \ "Unknown"   : "?"
    \ }
nnoremap <silent> <F4> :NERDTreeToggle<CR> 	"快捷键


"*****************************************************
"                   taglist配置                      *
"*****************************************************
let Tlist_Compact_Format=1					"不显示"press F1 to display help"
let Tlist_Use_Right_Window=1				"窗口在右侧显示
let Tlist_Show_One_File=1  					"只显示当前文件的tags
let Tlist_Auto_Highlight_tag=1				"高亮显示
let Tlist_Auto_Open=1						"自动打开
let Tlist_Auto_Update=1						"随文件自动更新
let Tlist_WinWidth=30      					"设置宽度
let Tlist_Exit_OnlyWindow=1 				"taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_SingClick=1					"单击跳转
let Tlist_GainFocus_On_ToggleOpen = 1 		"打开taglist时,光标停在taglist窗口
let Tlist_Display_Tag_Scope=1
let Tlist_Process_File_Always=1
nnoremap <silent> <F8> :TlistToggle<CR> 	"打开关闭快捷键

 
"*****************************************************
"           Syntastic配置 语法检查插件
"***************************************************** 
let g:Syntastic_check_on_open=1
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0


"*********************************************
"			MiniBufferExplorer 自动格式化代码
"
let g:miniBufExplMapWindowNavVim = 1 " 按下Ctrl+h/j/k/l,可以切换到当前窗口的上下左右窗口
let g:miniBufExplMapWindowNavArrows = 1 " 按下Ctrl+箭头,可以切换到当前窗口的上下左右窗口
let g:miniBufExplMapCTabSwitchBufs = 1 " 启用以下两个功能:Ctrl+tab移到下一个buffer并在当前窗口打开;Ctrl+Shift+tab移到上一个buffer并在当前窗口打开;ubuntu好像不支持
"let g:miniBufExplMapCTabSwitchWindows = 1 " 启用以下两个功能:Ctrl+tab移到下一个窗口;Ctrl+Shift+tab移到上一个窗口;ubuntu好像不支持
let g:miniBufExplModSelTarget = 1    " 不要在不可编辑内容的窗口(如TagList窗口)中打开选中的buffer

"*********************************************
"			autoformat 自动格式化代码
"
let g:formatdef_harttle = '"astyle --style=attach --pad-oper"'
let g:formatters_cpp = ['harttle']
let g:formatters_java = ['harttle']
noremap <F5> :Autoformat<CR>

"*********************************************
"			vim-airline 底部切换文件
"
let g:airline_powerline_fonts=1
let g:airline#extensions#tabline#enabled=1 "顶部tab显示"

nmap <tab> :bn<cr> "设置tab键映射"
let g:airline_theme='simple'  " murmur配色也不错



"配置Supertab  
let g:SuperTabRetainCompletionType=2 "记住上次的补全方式,直到按Esc退出插入模式位置  
let g:SuperTabDefaultCompletionType="<c-x><c-o>"  "按下tab后默认补全方式为<c-p>,现在改为<c-x><c-o>  

转载于:https://my.oschina.net/230/blog/1807926

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值