vimrc配置

时间:2020-04-12
本文章向大家介绍vimrc配置,主要包括vimrc配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
" 显示行数
set number

" 语法高亮
syntax enable

" 设置背景色调
set background=dark

" 设置主题
colorscheme solarized

" 开启文件类型侦察
filetype plugin on

" 去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set nocompatible

" set backspace
" " indent: 想用退格键将字段缩进的删掉,必须设置这个选项
" " eol: 如果插入模式下在行开头,想通过退格键合并两行,需要设置eol。
" " start:要想删除此次插入前的输入,需设置这个。
set backspace=indent,eol,start

" 按一个tab显示的空格数
set tabstop=4

" 编辑模式的时候按退格键的时候退回缩进的长度
set softtabstop=4

" 表示每一级缩进的长度,设置成与softtabstop一样即可
set shiftwidth=4

" 当设置成 expandtab 时,缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
set noexpandtab

" 设置字符编码
set encoding=utf-8


""" YCM Setrtings Start

" c/c++语言补全需要clangd路径
let g:ycm_clangd_binary_path = "E:/Vim/plug_dir/YouCompleteMe/third_party/ycmd/third_party/clangd/output/bin/clangd"

" 离开插入模式后自动关闭预览窗口
autocmd InsertLeave * if pumvisible() == 0|pclose|endif

" 设置选中补全选项的向上选择和向下选择的按键,默认是tapb和s-tab
let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']

" 开启 YCM 基于标签引擎
let g:ycm_collect_identifiers_from_tags_files=1

" 语法关键字补全
let g:ycm_seed_identifiers_with_syntax=1

" 关闭加载.ycm_extra_conf.py提示
let g:ycm_confirm_extra_conf=0

" 在注释输入中也能补全
let g:ycm_complete_in_comments = 1

" 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1

" 注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0

" 设置在下面几种格式的文件上屏蔽ycm
let g:ycm_filetype_blacklist = {
      \ 'tagbar' : 1,
      \ 'qf' : 1,
      \ 'notes' : 1,
      \ 'markdown' : 1,
      \ 'unite' : 1,
      \ 'text' : 1,
      \ 'vimwiki' : 1,
      \ 'pandoc' : 1,
      \ 'infolog' : 1,
      \ 'mail' : 1
      \}

"设置关健字触发补全
let g:ycm_semantic_triggers =  {
  \   'c' : ['->', '.', ' ', '(', '[', '&'],
  \   'objc' : ['->', '.', 're!\[[_a-zA-Z]+\w*\s', 're!^\s*[^\W\d]\w*\s',
  \             're!\[.*\]\s'],
  \   'ocaml' : ['.', '#'],
  \   'cpp,objcpp' : ['->', '.', '::'],
  \   'perl' : ['->'],
  \   'php' : ['->', '::'],
  \   'cs,java,javascript,typescript,d,python,perl6,scala,vb,elixir,go' : ['.'],
  \   'ruby' : ['.', '::'],
  \   'lua' : ['.', ':'],
  \   'erlang' : [':'],
  \ }

""" YCM Settings End


""" UltiSnips Start

"插入模式下直接通过<C-z>键来触发UltiSnips的代码块补全
let g:UltiSnipsExpandTrigger="<tab>"

"弹出UltiSnips的可用列表,由于不常用, 所以这里设置成了特殊的<C-i>映射
" let g:UltiSnipsListSnippets="<C-i>"

"<C-f>跳转的到下一个代码块可编辑区
let g:UltiSnipsJumpForwardTrigger="<C-f>"

"<C-b>跳转到上一个代码块可编辑区
let g:UltiSnipsJumpBackwardTrigger="<C-b>"

"""  UltiSnips End


""" NerdCommenter Start

" Add spaces after comment delimiters by default
let g:NERDSpaceDelims = 1

" Use compact syntax for prettified multi-line comments
let g:NERDCompactSexyComs = 1

" Align line-wise comment delimiters flush left instead of following code indentation
let g:NERDDefaultAlign = 'left'

" Set a language to use its alternate delimiters by default
"let g:NERDAltDelims_java = 1

" Add your own custom formats or override the defaults
"let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } }

" Allow commenting and inverting empty lines (useful when commenting a region)
let g:NERDCommentEmptyLines = 1

" Enable trimming of trailing whitespace when uncommenting
let g:NERDTrimTrailingWhitespace = 1

" Enable NERDCommenterToggle to check all selected lines is commented or not 
let g:NERDToggleCheckAllLines = 1

""" NerdCommenter End


""" NerdTree Start
"let g:NERDTreeDirArrowExpandable = ''
"let g:NERDTreeDirArrowCollapsible = ''
""" NerdTree End

call plug#begin('E:/Vim/plug_dir')
Plug 'ycm-core/YouCompleteMe'
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
Plug 'preservim/nerdtree'
Plug 'preservim/nerdcommenter'
call plug#end()

""" Vim Shortcut Key Start
map <F8> :NERDTreeToggle<CR>
""" Vim Shortcut Key End

原文地址:https://www.cnblogs.com/winsons/p/12687724.html