ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VIM配置【增量更新】

2019-09-16 13:51:32  阅读:370  来源: 互联网

标签:Plug set tags 更新 vim let ycm 增量 VIM


自己的vim配置

"HELP
"key bindings:
"<F1>: HELP vimdoc 
"<F2>: Toggle: NERDTreeToggle
"<F4>: autoformat - yapf
"<F7>: Toggle: linenumber
"<F8> :Toggle: TagbarToggle  
"<F11>:Toggle: paste mode

"================= ALL CONFIGURATION START ===============================
set nocompatible
filetype off
call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-easy-align'
Plug 'w0rp/ale'
Plug 'Chiel92/vim-autoformat'
Plug 'Yggdroot/indentLine'
Plug 'Valloric/YouCompleteMe'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree'
Plug 'tpope/vim-surround'
Plug 'majutsushi/tagbar'
Plug 'mhinz/vim-startify'
Plug 'jiangmiao/auto-pairs'
Plug 'chxuan/change-colorscheme'
Plug 'flazz/vim-colorschemes'
Plug 'junegunn/fzf', { 'dir': '~/.vim/fzf', 'do': './install --all'  }
Plug 'junegunn/fzf.vim'
Plug 'yianwillis/vimcdoc'
"Plug 'vim-latex/vim-latex'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'haya14busa/incsearch.vim'
Plug 'ludovicchabant/vim-gutentags' 
call plug#end()

"==============BASIC CONFIGURATION=====================
filetype plugin indent on
syntax on
set mouse=                     "set mouse= means mouse can not be used in vim at any mode"
set t_Co=256                   " 在终端启用256色
set backspace=2                " 设置退格键可用
set encoding=utf-8

"Leader Key
nnoremap <SPACE> <Nop>
let mapleader=" "

"toggle: paste
set pastetoggle=<F11>

"toggle: linenumber
nmap <F7> :set invnumber<CR>

"indent
set smartindent
set autoindent
set expandtab                                         " convert TAB to space
set softtabstop=4                                     " set width of one TAB

"edit
set writebackup                             "保存文件前建立备份,保存成功后删除该备份
set noswapfile
set undofile
set autoread "renew file when modified outside
set nowrap "do not warp line automatically

"search
set hlsearch
set incsearch       "在输入要搜索的文字时,实时匹配
set ignorecase      "搜索模式里忽略大小写
set smartcase       "如果搜索模式包含大写字符,不使用 'ignorecase' 选项,只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用
set showmatch

" insert mode move
imap <c-k> <Up>
imap <c-j> <Down>
imap <c-h> <Left>
imap <c-l> <Right>

" Status line
"set cmdheight=2                                       "设置命令行的高度为2,默认为1
set cursorline                                        "突出显示当前行
set ruler
set showcmd
set showmode

"==============PLUGIN CONFIGURATION===============================

"=============== <airline> ===================
let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
let g:airline#theme = 'atomic'

"===============<<colorscheme>>=====================
colorscheme space-vim-dark
hi Comment guifg=#5C6370 ctermfg=59 "Comment grey color

"========== <fzf> ==================================
nnoremap <silent> <C-p> :Files<CR>

"========== <ALE configuration> ====================
let b:ale_warn_about_trailing_whitespace = 0
let g:ale_echo_msg_error_str = 'ERROR'
let g:ale_echo_msg_warning_str = 'WARNING'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'

" show side
let g:ale_sign_column_always = 1
let g:ale_set_highlights = 0

" config figure
let g:ale_sign_error = '✗'
let g:ale_sign_warning = '⚡'
"<Leader>s触发/关闭语法检查
nmap <Leader>s :ALEToggle<CR>

"===========<autoformat configuration>=================
let g:formatdef_jxm = '"yapf --style=google "'
let g:formatters_python = ['jxm']
noremap <F4> :Autoformat<CR>

"=========== <indentline> =============================
nmap <leader>il :IndentLinesToggle<CR>
let g:indentLine_color_term = 239 "set indentline color

"==========  <nerdcommenter config> ===================
let NERDSpaceDelims = 1                     "在左注释符之后,右注释符之前留有空格
nmap <F2> :NERDTreeToggle<CR>

"========== <youcompleteme> ==========================
let g:ycm_add_preview_to_completeopt = 0
let g:ycm_show_diagnostics_ui = 0
let g:ycm_server_log_level = 'info'
let g:ycm_min_num_identifier_candidate_chars = 2
let g:ycm_collect_identifiers_from_comments_and_strings = 1
let g:ycm_complete_in_strings=1
let g:ycm_key_invoke_completion = '<c-z>'
noremap <c-z> <NOP>
set completeopt=menu,menuone
"modify complete color
highlight PMenu ctermfg=0 ctermbg=242 guifg=black guibg=darkgrey
highlight PMenuSel ctermfg=242 ctermbg=8 guifg=darkgrey guibg=black
" complete with min 2 candidate chars on some file types
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,
                        \ "go":1,
                        \ "python":1,
                        \ "sh":1,
                        \ "zsh":1,
                        \ }
let g:ycm_filetype_blacklist = {
                        \ 'markdown' : 1,
                        \ 'text' : 1,
                        \ 'pandoc' : 1,
                        \ 'infolog' : 1,
                        \ 'xml' : 1,
                        \}
"======== <guntentags> =============================
set tags+=~/.cache/tags/
" gutentags搜索工程目录的标志,碰到这些文件/目录名就停止向上一级目录递归 "
let g:gutentags_project_root = ['.root', '.svn', '.git', '.project']

" 所生成的数据文件的名称 "
let g:gutentags_ctags_tagfile = '.tags'

" 将自动生成的 tags 文件全部放入 ~/.cache/tags 目录中,避免污染工程目录 "
let s:vim_tags = expand('~/.cache/tags')
let g:gutentags_cache_dir = s:vim_tags
" 检测 ~/.cache/tags 不存在就新建 "
if !isdirectory(s:vim_tags)
   silent! call mkdir(s:vim_tags, 'p')
endif

" 配置 ctags 的参数 "
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+pxI']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
"======== <tagbar> ===============================
let g:tagbar_ctags_bin='/usr/bin/ctags' 
let g:tagbar_width=30
let g:tagbar_right=1  
map <F8> :TagbarToggle<CR>  

 

标签:Plug,set,tags,更新,vim,let,ycm,增量,VIM
来源: https://www.cnblogs.com/jxmer/p/11526927.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有