call plug#begin('~/.vim/plugged')
Plug 'itchyny/lightline.vim'
Plug 'preservim/nerdtree'
Plug 'Valloric/YouCompleteMe'
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable'}
call plug#end()
":echo "Hello,moli!"
"注释:"开头表示注释
"=========================一般设置=======================================
set backspace=2 "启用退格删除
set nocompatible "vim比vi支持更多的功能,如showcmd,避免冲突和副作用,最好关闭兼容
set encoding=utf-8 "使用utf-8编码
set number "显示行号
set showcmd "显示输入命令
set cursorline "显示当前行
set hlsearch "显示高亮搜索
set incsearch
set history=100 "默认指令记录是20
set pastetoggle=<F3> "F3快捷键于paste模式与否之间转化,防止自动缩进
set helplang=cn "设置为中文帮助文档,需下载并配置之后才生效
set splitbelow " 默认窗口在下方
set termwinsize=10x0 "默认窗口大小为10
set laststatus=2
set statusline=%F
let mapleader = "\<space>"
"===========================文本格式排版================================
set tabstop=4 "设置tab长度为4
set shiftwidth=4 "设置自动对齐的缩进级别
set cindent
set smartindent "改进版的cindent,自动识别以#开头的注释,不进行换行
set autoindent "autoindent配合下面一条命令根据不同语言类型进行不同的缩进操
filetype plugin indent on
set nowrap
"===========================选择molokai的模式============================
let g:rehash256 = 1
let g:molokai_original = 1
highlight NonText guibg=#060606
highlight Folded guibg=#0A0A0A guifg=#9090D0
set t_Co=256
set background=dark
colorscheme molokai
set tabstop=4
"===========================NerdTree============================
autocmd vimenter * NERDTree "自动开启Nerdtree
wincmd w
autocmd VimEnter * wincmd w "光标默认在右边编辑区
"let NERDTreeShowBookmarks=1 " 开启Nerdtree时自动显示Bookmarks
"打开vim时如果没有文件自动打开NERDTree
autocmd vimenter * if !argc()|NERDTree|endif
"当NERDTree为剩下的唯一窗口时自动关闭
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"设置树的显示图标
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
let NERDTreeIgnore = ['\.pyc$', '\.swp', '\.swo', '\.vscode', '__pycache__'] " 过滤所有.pyc文件不显示
let g:NERDTreeHidden=0 "不显示隐藏文件
"Making it prettier
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1
"开启/关闭nerdtree
map <C-t> :NERDTreeToggle<CR>
"定位到当前文件
map <C-f> :NERDTreeFind<cr>
"=========================== YouCompleteMe =============================
set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
autocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口
let g:ycm_key_list_select_completion=['<c-n>', '<Down>']
let g:ycm_key_list_previous_completion=['<c-p>', '<Up>']
let g:ycm_key_list_stop_completion = ['<C-y>', '<Enter>']
let g:ycm_confirm_extra_conf = 0 "关闭加载.ycm_extra_conf.py提示
let g:ycm_collect_identifiers_from_tags_files = 1 " 开启 YouCompleteMe基于标签引
let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项
let g:ycm_max_num_candidates = 50 "选补全框内显示的补全条目的最大数量
let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
let g:ycm_error_symbol = '>>'
let g:ycm_warning_symbol = '>*'
" 只有以下文件会触发弹框
let g:ycm_semantic_triggers = {
\ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'],
\ 'cs,lua,javascript': ['re!\w{2}'],
\ }
" 只解析以下文件类型
let g:ycm_filetype_whitelist = {
\ "c":1,
\ "cpp":1,
\ "objc":1,
\ "sh":1,
\ "zsh":1,
\ "zimbu":1,
\ }
nnoremap <C-j> :YcmCompleter GoToDefinitionElseDeclaration<CR> "跳转到定义处
nnoremap <C-k> :YcmCompleter GoToReferences<CR>
" 配置 ctags 路径
let g:ycm_autoclose_preview_window_after_completion=1
set tags=tags;
vimrc
最新推荐文章于 2024-06-23 10:40:47 发布