"""""""""""""""""""""""""""""插件相关"""""""""""""""""""""""""""""""""""""""""""
set nocompatible " be iMproved, required
filetype off " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim' "中间添加需要安装的插件
Plugin 'scrooloose/nerdtree'
Plugin 'scrooloose/nerdcommenter'
Plugin 'jiangmiao/auto-pairs'
Plugin 'vim-airline/vim-airline'
Plugin 'Valloric/YouCompleteMe'
Plugin 'mhinz/vim-startify'
Plugin 'majutsushi/tagbar'
Plugin 'nine2/vim-copyright'
Plugin 'DoxygenToolkit.vim'
call vundle#end() " required
filetype plugin indent on " required
" nerdtree
nnoremap <leader>t :NERDTreeToggle<CR> "\t 打开关闭NERDTree
nnoremap <C-n> :NERDTreeToggle<CR> " Ctr+n 打开或关闭NERDTree
let NERDTreeIgnore=['\.pyc','\~$','\.swp'] "忽略带此后缀名的文件
let NERDTreeShowLineNumbers=1 "NERDTree显示行号
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif "NERDTree是最后一个窗口,自动关闭
autocmd FileType nerdtree noremap <buffer> <tab> <nop> "tab 键对于nerdtree窗口无效(防止在nerdtree窗口切换buffer)
autocmd FileType nerdtree noremap <buffer> <S-tab> <nop> "Shift-tab 键对于nerdtree窗口无效
" nerdcommenter
let g:NERDSpaceDelims = 1 " Add spaces after comment delimiters by default
let g:NERDTrimTrailingWhitespace = 1 "uncomment的时候,修减行末的空格
let g:NERDDefaultAlign = 'left' "左对齐 注释符
let g:NERDCompactSexyComs = 1 " 和上一个一起使用,多行注释 ,注释符全部都在行首
let g:NERDCustomDelimiters = { 'c': { 'left': '//' } } "自定义注释符 比如 'c': { 'left': '/*','right': '*/' }
"auto-pairs
let g:AutoPairsFlyMode =1 "飞行模式开启,默认不开启,可以跨括号跳出,如 ([foo|]) 按)之后会直接跳出来 ([foo]) |
let g:AutoPairsMapSpace = 1 " 把SPACE键映射为在括号两侧添加空格
"vim-airline
"\1 映射成 :选择第一个buffer
map <leader>1 <Plug>AirlineSelectTab1
map <leader>2 <Plug>AirlineSelectTab2
map <leader>3 <Plug>AirlineSelectTab3
map <leader>4 <Plug>AirlineSelectTab4
map <leader>5 <Plug>AirlineSelectTab5
map <leader>6 <Plug>AirlineSelectTab6
map <leader>7 <Plug>AirlineSelectTab7
map <leader>8 <Plug>AirlineSelectTab8
map <leader>9 <Plug>AirlineSelectTab9
let g:airline#extensions#tabline#enabled = 1 " Enable the list of buffers
let g:airline#extensions#tabline#fnamemod = ':t' " Show just the filename
"vim-startify
let g:startify_files_number = 5 "每个列表长度
let g:startify_session_autoload = 1 "自动会话
" 设置书签
let g:startify_bookmarks = [
\ '~/Project/test.cpp',
\]
"tagbar
nnoremap <F8> :TagbarToggle<CR> " F8(有的笔记本是Fn+F8)打开关闭tagbar
let g:tagbar_ctags_bin = '/usr/bin/ctags' " tagbar依赖ctags(先安装)
let g:tagbar_autofocus = 1 "打开tagbar的时候,跳到tagbar的窗口,默认在文件窗口
"let g:tagbar_left = 1 让tagbar在页面左侧显示,默认右边
"let g:tagbar_width = 30 设置tagbar的宽度为30列,默认40
"YouCompleteMe
nnoremap <F9> :YcmDiags<CR>
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
set runtimepath+=~/.vim/bundle/YouCompleteMe
set completeopt-=preview " 在接受补全后不分裂出一个窗口显示接受的项
let g:ycm_global_ycm_extra_conf ='~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'
let g:ycm_seed_identifiers_with_syntax = 1 "关键字补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释与字符串中的内容也用于补全
let g:ycm_complete_in_comments = 1 " 在注释输入中也能补全
let g:ycm_complete_in_strings = 1 " 在字符串输入中也能补全
let g:ycm_show_diagnostics_ui = 0 " 禁用语法检查
let g:ycm_cache_omnifunc=0
let g:ycm_collect_identifiers_from_tags_files=1
let g:ycm_use_ultisnips_completer=0
"vim-copyright
let g:file_copyright_name = "julian Andrison"
let g:file_copyright_email = "15544925950@163.com"
let g:file_copyright_auto_filetypes = ['sh', 'plx', 'pl', 'pm', 'py', 'python', 'h', 'hpp', 'c', 'cpp', 'java'] "新建这些文件的时候会自动添加文件头
nnoremap <leader>a :CopyrightAdd<CR> "在现有的文件添加
nnoremap <leader>u :CopyrightUpdate<CR> "跟新现有的文件
"DoxygenToolkit.vim
let g:DoxygenToolkit_briefTag_funcName = "yes"
let g:DoxygenToolkit_briefTag_pre = "@brief: "
let g:DoxygenToolkit_paramTag_pre="@param: "
let g:DoxygenToolkit_returnTag="@returns: "
nnoremap <leader>d :Dox<CR>
"""""""""""""""""""""""""""""""""""""""""按键映射"""""""""""""""""""""""""""""""""
"copy ,paste 之后 光标移到后面
vmap <C-c> "+y
nmap <C-v> "+gp
" 原来的Ctr+v是 块选择,需要重新map,注意使用非递归,否则将映射到"+gp
nnoremap <leader>v <C-v>
"切换缓冲区
nnoremap <tab> :bn<CR>
nnoremap <S-tab> :bp<CR>
"删除缓冲区
nnoremap <S-c> :bp\|bd #<CR>
"光标移动到指定窗口
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-h> <C-w>h
nnoremap <C-l> <C-w>l
"函数、操作
set hidden "允许在有未保存的修改时切换缓冲区
set nu
set shiftwidth=4 "设置缩进为4,shift+<<的缩进
set softtabstop=4 "设置tab键为4
"set mouse=a
syntax on
"set path+=/usr/local/include/ " 设置path ,可以在vim 按 gf 打开头文件 再按Ctrl+o退出
set path+=/usr/local/include/
set path+=/usr/include/x86_64-linux-gnu/c++/5.4.0/bits
set path+=/usr/include/c++/5.4.0
.vimrc 文件
最新推荐文章于 2025-07-15 16:20:49 发布