使用前需要先配置好
YCM
,且Vim版本最好再8.1以上。配置Vim查看这篇文章即可。
- 配置
.vimrc
:vim ~/.vimrc
再将这些复制上去保存;- 在使用vim进入到该文件输入
PluginInstall
等待安装完毕即可。
set t_Co=256
let g:solarized_termcolors=256
set background=dark
colorscheme molokai
set number "左侧行号
set smartindent "智能对齐
set shiftwidth=4 "行首宽度
set softtabstop=4 "智能对齐时tab的宽度
set tabstop=4 "tab的宽度
"设置魔术"
set magic
"显示标尺"
set ruler
filetype on
"设置字体
"set guifont=dejaVu\ Sans\ MONO\ 10
set guifont=Courier_New:h10:cANSI
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 建.c,.h,.sh,.java文件,自动插入文件头
"定义函数SetTitle,自动插入文件头
autocmd BufNewFile *.cpp exec ":call SetTitle()"
func SetTitle()
"##########################################################################")
call setline(1, "/*----------------------------------------------------------------------")
call append(line("."), " > File Name: ".expand("%"))
call append(line(".")+1, " > Author: Jxiepc")
call append(line(".")+2, " > Mail: Jxiepc")
call append(line(".")+3, " > Created Time: ".strftime("%c"))
call append(line(".")+4, "----------------------------------------------------------------------*/")
call append(line(".")+5, "")
call append(line(".")+6, "#include<iostream>")
call append(line(".")+7, "using namespace std;")
endfunc
" quickfix模式
autocmd FileType c,cpp
" "代码补全
set completeopt=preview,menu
"允许插件
filetype plugin on
" "共享剪贴板
" 打开状态栏标尺
set cursorline
" "
" 突出显示当前行
set magic
" 设置在状态行显示的信息
set foldcolumn=0
set foldmethod=indent
set foldlevel=3
set foldenable
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 这里根据自己需要的插件来设置,以下是我的配置 "
"
" YouCompleteMe:语句补全插件
set runtimepath+=~/.vim/bundle/YouCompleteMe
set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)"
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
"离开插入模式后自动关闭预览窗口"
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" "回车即选中当前项
"上下左右键的行为 会显示其他信息
inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>"
inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>"
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" :\<PageDown>"
inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"
"youcompleteme 默认tab s-tab 和自动补全冲突
let g:ycm_key_list_select_completion=['<c-n>']
let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion=['<c-p>']
let g:ycm_key_list_previous_completion = ['<Up>']
let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示
"
let g:ycm_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎
let g:ycm_min_num_of_chars_for_completion=2 "
"从第2个键入字符就开始罗列匹配项
let g:ycm_cache_omnifunc=0 " 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全
nnoremap <F5> :YcmForceCompileAndDiagnostics<CR> "force recomile with syntastic
"nnoremap <leader>lo :lopen<CR> "open locationlist
"nnoremap <leader>lc :lclose<CR> "close locationlist
inoremap <leader><leader> <C-x><C-o>
""在注释输入中也能补全
let g:ycm_complete_in_comments = 1
"在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
""注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳转到定义处
" github 仓库中的插件 "
Plugin 'VundleVim/Vundle.vim'
Plugin 'vim-airline/vim-airline'
"vim-airline配置:优化vim界面"
"let g:airline#extensions#tabline#enabled = 1
" airline设置
" 显示颜色
set t_Co=256
set laststatus=2
" 使用powerline打过补丁的字体
let g:airline_powerline_fonts = 1
" 开启tabline
let g:airline#extensions#tabline#enabled = 1
" tabline中当前buffer两端的分隔字符
let g:airline#extensions#tabline#left_sep = ' '
" tabline中未激活buffer两端的分隔字符
let g:airline#extensions#tabline#left_alt_sep = ' '
" tabline中buffer显示编号
let g:airline#extensions#tabline#buffer_nr_show = 1
" 映射切换buffer的键位
nnoremap [b :bp<CR>
nnoremap ]b :bn<CR>
" 映射<leader>num到num buffer
map <leader>1 :b 1<CR>
map <leader>2 :b 2<CR>
map <leader>3 :b 3<CR>
map <leader>4 :b 4<CR>
map <leader>5 :b 5<CR>
map <leader>6 :b 6<CR>
map <leader>7 :b 7<CR>
map <leader>8 :b 8<CR>
map <leader>9 :b 9<CR>
" vim-scripts 中的插件 "
Plugin 'taglist.vim'
"ctags 配置:F3快捷键显示程序中的各种tags,包括变量和函数等。
map <F3> :TlistToggle<CR>
let Tlist_Use_Right_Window=1
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_WinWidt=25
Plugin 'The-NERD-tree'
"NERDTree 配置:F2快捷键显示当前目录树
map <F2> :NERDTreeToggle<CR>
let NERDTreeWinSize=25
Plugin 'indentLine.vim'
Plugin 'delimitMate.vim'
" 非 github 仓库的插件"
" Plugin 'git://git.wincent.com/command-t.git'
" 本地仓库的插件 "
call vundle#end()