Advertisement
Guest User

Untitled

a guest
Dec 7th, 2018
532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 6.96 KB | None | 0 0
  1. if &compatible
  2.     set nocompatible
  3. endif
  4.  
  5. " Specify a directory for plugins
  6. " - For Neovim: ~/.local/share/nvim/plugged
  7. " - Avoid using standard Vim directory names like 'plugin'
  8. call plug#begin('~/.vim/plugged')
  9.     " 定义插件,默认用法,和 Vundle 的语法差不多
  10.     Plug 'junegunn/vim-easy-align'
  11.     " Plug 'skywind3000/quickmenu.vim'
  12.  
  13.     " 延迟按需加载,使用到命令的时候再加载或者打开对应文件类型才加载
  14.     Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
  15.     Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
  16.  
  17.     " 确定插件仓库中的分支或者 tag
  18.     Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
  19.     Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
  20.  
  21.     Plug 'w0rp/ale'
  22.   Plug 'Valloric/YouCompleteMe'
  23.     Plug 'kana/vim-textobj-user'
  24.     Plug 'kana/vim-textobj-indent'
  25.     Plug 'kana/vim-textobj-syntax'
  26.     Plug 'kana/vim-textobj-function', { 'for':['c', 'cpp', 'vim', 'java', 'python'] }
  27.     Plug 'sgur/vim-textobj-parameter'
  28.  
  29.     Plug 'ludovicchabant/vim-gutentags'
  30.   Plug 'Yggdroot/LeaderF'
  31.   Plug 'Shougo/echodoc.vim'
  32.   Plug 'vim-airline/vim-airline'
  33.   Plug 'vim-airline/vim-airline-themes'
  34.   Plug 'octol/vim-cpp-enhanced-highlight'
  35.   Plug 'tpope/vim-unimpaired'
  36.   Plug 'jiangmiao/auto-pairs'
  37.   " Plug 'mhinz/vim-signify'
  38.   Plug 'scrooloose/nerdcommenter'
  39.   Plug 'godlygeek/tabular'
  40.   " Plug 'ervandew/supertab'
  41.   " Plug 'python-mode/python-mode', {'branch' : 'develop'}
  42.   Plug 'skywind3000/asyncrun.vim'
  43.   Plug 'majutsushi/tagbar'
  44. call plug#end()
  45.  
  46. let g:ale_linters_explicit = 1
  47. let g:ale_completion_delay = 500
  48. let g:ale_echo_delay = 20
  49. let g:ale_lint_delay = 500
  50. let g:ale_echo_msg_format = '[%linter%] %code: %%s'
  51. let g:ale_lint_on_text_changed = 'normal'
  52. let g:ale_lint_on_insert_leave = 1
  53.  
  54. let g:ale_c_gcc_options = '-Wall -O2 -std=c11'
  55. let g:ale_cpp_gcc_options = '-Wall -O2 -std=c++11'
  56. let g:ale_c_cppcheck_options = ''
  57. let g:ale_cpp_cppcheck_options = ''
  58.  
  59. let g:ale_sign_error = ">>"
  60. let g:ale_sign_warning = '--'
  61. let g:ale_statusline_format = ['✗ %d', '⚡ %d', '✔ OK']
  62. let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
  63.  
  64. hi! clear SpellBad
  65. hi! clear SpellCap
  66. hi! clear SpellRare
  67. " hi! SpellBad gui=undercurl guisp=red
  68. " hi! SpellCap gui=undercurl guisp=blue
  69. " hi! SpellRare gui=undercurl guisp=magenta
  70. hi SpellBad cterm=undercurl ctermfg=red
  71. hi SpellCap cterm=undercurl ctermfg=blue
  72. hi SpellRare cterm=undercurl ctermfg=magenta
  73.  
  74. let $GTAGSCONF  = '/usr/local/Cellar/global/6.6.2_2/share/gtags/gtags.conf'
  75. let $GTAGSLABEL = 'native-pygments'
  76. " gutentags 搜索工程目录的标志,碰到这些文件/目录名就停止向上一级目录递归
  77. let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']
  78.  
  79. " 所生成的数据文件的名称
  80. let g:gutentags_ctags_tagfile = '.tags'
  81.  
  82. " 同时开启 ctags 和 gtags 支持:
  83. let g:gutentags_modules = []
  84. if executable('ctags')
  85.     let g:gutentags_modules += ['ctags']
  86. endif
  87. if executable('gtags-cscope') && executable('gtags')
  88.     let g:gutentags_modules += ['gtags_cscope']
  89. endif
  90.  
  91. " 将自动生成的 tags 文件全部放入 ~/.cache/tags 目录中,避免污染工程目录
  92. let s:vim_tags = expand('~/.cache/tags')
  93. let g:gutentags_cache_dir = s:vim_tags
  94.  
  95. " 配置 ctags 的参数
  96. let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
  97. let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']
  98. let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
  99.  
  100. set tags=./.tags;.tags
  101.  
  102. let g:NERDSpaceDelims=1
  103. " colorscheme solarized
  104. set background=dark
  105. let NERDTreeWinPos='right'
  106. let NERDTreeWinSize=30
  107. map <F2> :NERDTreeToggle<CR>
  108. autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
  109.  
  110.  
  111. " customization
  112. set number
  113. set modelines=0
  114. set wrap
  115. set tabstop=2
  116. set shiftwidth=2
  117. set softtabstop=2
  118. set expandtab
  119. set noshiftround
  120. set showmode
  121. set showcmd
  122. set encoding=utf-8
  123. set ignorecase
  124. set smartcase
  125. set mouse=a
  126. set backspace=2
  127. set scrolloff=5
  128. set cursorline
  129. filetype plugin indent on
  130. syntax enable
  131.  
  132. let g:ycm_add_preview_to_completeopt = 0
  133. let g:ycm_show_diagnostics_ui = 0
  134. let g:ycm_server_log_level = 'info'
  135. let g:ycm_min_num_identifier_candidate_chars = 2
  136. let g:ycm_collect_identifiers_from_comments_and_strings = 1
  137. let g:ycm_complete_in_strings=1
  138. " let g:ycm_key_invoke_completion = '<c-z>'
  139. let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
  140. " let g:ycm_global_ycm_extra_conf = "~/.vim/plugged/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"
  141. set completeopt=menu,menuone
  142. " noremap <c-z> <NOP>
  143.  
  144. let g:ycm_semantic_triggers =  {
  145.             \ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'],
  146.             \ 'cs,lua,javascript': ['re!\w{2}'],
  147.             \ }
  148. highlight PMenu ctermfg=0 ctermbg=242 guifg=black guibg=darkgrey
  149. highlight PMenuSel ctermfg=242 ctermbg=8 guifg=darkgrey guibg=black
  150. set completeopt=menu,menuone
  151.  
  152. set noshowmode " for echodoc
  153.  
  154. let g:airline_theme = 'molokai'
  155. let g:airline_powerline_fonts = 1
  156. let g:airline#extensions#tabline#enabled = 1
  157. let g:airline#extensions#tabline#buffer_nr_show = 1
  158. let g:airline#extensions#whitespace#enabled = 0
  159. let g:airline#extensions#whitespace#symbol = '!'
  160. let g:airline#extensions#ale#enabled = 1
  161. nnoremap <C-N> :bn<CR>
  162. nnoremap <C-P> :bp<CR>
  163.  
  164. let g:cpp_class_scope_highlight = 1
  165. let g:cpp_member_variable_highlight = 1
  166. let g:cpp_class_decl_highlight = 1
  167. let g:cpp_experimental_simple_template_highlight = 1
  168. let g:cpp_concepts_highlight = 1
  169. let g:cpp_no_function_highlight = 1
  170.  
  171. let g:ale_linters = {
  172. \   'cpp': ['clang'],
  173. \   'c': ['clang'],
  174. \   'python': ['pylint'],
  175. \   'rust': ['rls'],
  176. \}
  177. let g:ale_fixers = {
  178. \   'cpp': ['clang-format'],
  179. \   'c': ['clang-format'],
  180. \   'python': ['black'],
  181. \   'rs' : ['rustfmt'],
  182. \}
  183.  
  184. " vim tabular usage
  185. " :Tabularize /<seperator>
  186.  
  187. " shortcuts for buffer
  188. nnoremap <Leader>1 :1b<CR>
  189. nnoremap <Leader>2 :2b<CR>
  190. nnoremap <Leader>3 :3b<CR>
  191. nnoremap <Leader>4 :4b<CR>
  192. nnoremap <Leader>5 :5b<CR>
  193. nnoremap <Leader>6 :6b<CR>
  194. nnoremap <Leader>7 :7b<CR>
  195. nnoremap <Leader>8 :8b<CR>
  196. nnoremap <Leader>9 :9b<CR>
  197. nnoremap <Leader>0 :10b<CR>
  198.  
  199. " LeaderF highlights
  200. highlight Lf_hl_match gui=bold guifg=Blue cterm=bold ctermfg=21
  201. highlight Lf_hl_matchRefine  gui=bold guifg=Magenta cterm=bold ctermfg=201
  202.  
  203. " TagBar shortcut
  204. nmap <leader>tb :TagbarToggle<CR>
  205. "设置tagbar的窗口宽度
  206. let g:tagbar_width=30
  207. ""设置tagbar的窗口显示的位置,为左边
  208. let g:tagbar_left=1
  209. "打开文件自动 打开tagbar
  210. " autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx,*.py,*.f,*.f9* call tagbar#autoopen()
  211.  
  212.  
  213. " Asyncrun configs
  214. " 自动打开 quickfix window ,高度为 6
  215. let g:asyncrun_open = 6
  216. " 任务结束时候响铃提醒
  217. let g:asyncrun_bell = 1
  218. " 设置 F10 打开/关闭 Quickfix 窗口
  219. nnoremap <F10> :call asyncrun#quickfix_toggle(6)<cr>
  220. nnoremap <silent> <F5> :AsyncRun -raw -cwd=$(VIM_FILEDIR) "$(VIM_FILEDIR)/$(VIM_FILENOEXT)" <cr>
  221. nnoremap <silent> <F9> :AsyncRun g++ -Wall -g -O2 -std=c++11 "$(VIM_FILEPATH)" -o "$(VIM_FILEDIR)/$(VIM_FILENOEXT)" <cr>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement