Advertisement
Guest User

Untitled

a guest
Jul 7th, 2018
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 6.95 KB | None | 0 0
  1. call plug#begin()
  2.  
  3. " completion
  4. Plug 'shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
  5. Plug 'zchee/deoplete-go', {' do': 'make' }
  6.  
  7. " color
  8. Plug 'chrisbra/colorizer'
  9. Plug 'joshdick/onedark.vim'
  10.  
  11. " ctags
  12. Plug 'ludovicchabant/vim-gutentags'
  13.  
  14. " documentation
  15. Plug 'rhysd/devdocs.vim'
  16.  
  17. " fzf
  18. Plug 'junegunn/fzf.vim'
  19.  
  20. " git
  21. Plug 'airblade/vim-gitgutter'
  22.  
  23. " language support
  24. Plug 'fatih/vim-go'
  25. Plug 'sheerun/vim-polyglot'
  26.  
  27. " language server protocol
  28. Plug 'autozimu/languageclient-neovim', { 'branch': 'next', 'do': 'bash install.sh' }
  29.  
  30. " linting & formatting
  31. Plug 'sbdchd/neoformat'
  32. Plug 'w0rp/ale'
  33.  
  34. " navigation
  35. Plug 'airblade/vim-rooter'
  36. Plug 'ericcurtin/curtineincsw.vim'
  37. Plug 'justinmk/vim-dirvish'
  38.  
  39. " quickfix & loclist
  40. Plug 'romainl/vim-qf'
  41.  
  42. " search
  43. Plug 'junegunn/vim-slash'
  44. Plug 'mhinz/vim-grepper'
  45.  
  46. " snippet
  47. Plug 'sirver/ultisnips' | Plug 'honza/vim-snippets'
  48.  
  49. " text editing
  50. Plug 'chaoren/vim-wordmotion'
  51. Plug 'michaeljsmith/vim-indent-object'
  52. Plug 'ntpeters/vim-better-whitespace'
  53. Plug 'raimondi/delimitmate'
  54. Plug 'tommcdo/vim-lion'
  55. Plug 'wellle/targets.vim'
  56.  
  57. " tpope
  58. Plug 'tpope/vim-abolish'
  59. Plug 'tpope/vim-commentary'
  60. Plug 'tpope/vim-endwise'
  61. Plug 'tpope/vim-eunuch'
  62. Plug 'tpope/vim-fugitive'
  63. Plug 'tpope/vim-repeat'
  64. Plug 'tpope/vim-rsi'
  65. Plug 'tpope/vim-sleuth'
  66. Plug 'tpope/vim-surround'
  67. Plug 'tpope/vim-unimpaired'
  68.  
  69. " undo
  70. Plug 'mbbill/undotree'
  71.  
  72. call plug#end()
  73.  
  74. " ale
  75. let g:ale_lint_on_insert_leave = 1
  76. let g:ale_lint_on_text_changed = 'normal'
  77. let g:ale_set_quickfix = 1
  78.  
  79. " better whitespace
  80. let g:better_whitespace_enabled = 1
  81. let g:better_whitespace_guicolor = '#e06c75'
  82.  
  83. " colorizer
  84. let g:colorizer_colornames = 0
  85.  
  86. " delimitmate
  87. let g:delimitMate_balance_matchpairs = 1
  88. let g:delimitMate_expand_cr = 1
  89. let g:delimitMate_expand_space = 1
  90.  
  91. " deoplete
  92. let g:deoplete#enable_at_startup = 1
  93.  
  94. " dirvish
  95. let g:dirvish_relative_paths = 1
  96. let g:loaded_netrw = 1
  97. let g:loaded_netrwPlugin = 1
  98.  
  99. command! -nargs=? -complete=dir Explore silent Dirvish <args>
  100. command! -nargs=? -complete=dir Sexplore split | silent Dirvish <args>
  101. command! -nargs=? -complete=dir Vexplore vsplit | silent Dirvish <args>
  102.  
  103. " fzf
  104. let g:fzf_history_dir = $HOME . '/.local/share/nvim/fzf'
  105. let g:fzf_layout = { 'down': '10' }
  106.  
  107. command! -bang -nargs=* Rg
  108.             \ call fzf#vim#grep(
  109.             \   'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
  110.             \   <bang>0 ? fzf#vim#with_preview('up:60%') : fzf#vim#with_preview('right:50%:hidden', '?'), <bang>0)
  111.  
  112. " gitgutter
  113. if executable('rg')
  114.     let g:gitgutter_grep = 'rg'
  115. endif
  116.  
  117. " gutentags
  118. if !executable('ctags')
  119.     let g:gutentags_enabled = 0
  120. endif
  121.  
  122. " go
  123. let g:go_fmt_command = 'goimports'
  124. let g:go_term_mode = 'split'
  125.  
  126. " grepper
  127. let g:grepper = {
  128.             \ 'dir': 'filecwd',
  129.             \ 'jump': 1,
  130.             \ 'quickfix': 0,
  131.             \ 'switch': 0,
  132.             \ 'tools': [ 'rg', 'ag', 'ack', 'grep', 'git', 'findstr', 'pt', 'sift' ],
  133.             \ }
  134.  
  135. " languageclient
  136. let g:LanguageClient_serverCommands = {
  137.             \ 'c': [ 'clangd' ],
  138.             \ 'cpp': [ 'clangd' ],
  139.             \ 'javascript': [ 'javascript-typescript-stdio' ],
  140.             \ 'python': [ 'pyls' ],
  141.             \ 'ruby': [ 'solargraph',  'stdio' ],
  142.             \ }
  143.  
  144. " onedark
  145. let g:onedark_color_overrides = {
  146.             \ 'comment_grey': { 'gui': '#7f848e', 'cterm': '59', 'cterm16': '15' },
  147.             \ 'gutter_fg_grey': { 'gui': '#515a6b', 'cterm': '238', 'cterm16': '15' },
  148.             \ 'special_grey': { 'gui': '#7f848e', 'cterm': '238', 'cterm16': '15' },
  149.             \ 'vertsplit': { 'gui': '#515a6b', 'cterm': '59', 'cterm16': '15' },
  150.             \ }
  151.  
  152. " polyglot
  153. let g:jsx_ext_required = 1
  154.  
  155. " qf
  156. let g:qf_auto_open_quickfix = 0
  157.  
  158. " rooter
  159. let g:rooter_manual_only = 1
  160.  
  161. " ultisnips
  162. let g:UltiSnipsJumpBackwardTrigger = '<a-b>'
  163. let g:UltiSnipsJumpForwardTrigger = '<a-f>'
  164. let g:UltiSnipsSnippetDirectories = [ 'snips' ]
  165.  
  166. " undotree
  167. let g:undotree_SetFocusWhenToggle = 1
  168.  
  169. " wordmotion
  170. let g:wordmotion_spaces = '_-.'
  171.  
  172. " --------------------------------
  173.  
  174. augroup Settings
  175.     autocmd!
  176.  
  177.     " completion
  178.     autocmd InsertLeave * if pumvisible() == 0 | pclose | endif
  179. augroup END
  180.  
  181. augroup Plugins
  182.     autocmd!
  183.  
  184.     " ale
  185.     autocmd Filetype c,cpp let b:ale_enabled = 0
  186.  
  187.     " commentary
  188.     autocmd Filetype c,cpp setlocal commentstring=//%s
  189.     autocmd Filetype sql setlocal commentstring=--%s
  190.  
  191.     " curtineincsw
  192.     autocmd Filetype c,cpp command! -bang A call CurtineIncSw()
  193.  
  194.     " go
  195.     autocmd Filetype go command! -bang A call go#alternate#Switch(<bang>0, 'edit')
  196. augroup END
  197.  
  198. " --------------------------------
  199.  
  200. " normal + visual mappings
  201. noremap + "+
  202.  
  203. noremap \ :
  204.  
  205. noremap 0 ^
  206. noremap ^ 0
  207.  
  208. " normal mappings
  209. nnoremap Y y$
  210.  
  211. nnoremap <expr> i len(getline('.')) == 0 ? '"_cc' : 'i'
  212.  
  213. " insert mappings
  214. inoremap <c-u> <c-g>u<c-u>
  215.  
  216. if executable('fzf')
  217.     imap <c-x><c-f> <plug>(fzf-complete-path)
  218. endif
  219.  
  220. " g mappings
  221. nnoremap gb :Buffers<cr>
  222. map      gs <plug>(GrepperOperator)
  223.  
  224. " leader mappings
  225. let mapleader = "\<space>"
  226.  
  227. nnoremap <leader>c  :ColorToggle<cr>
  228. nnoremap <leader>n  :Neoformat<cr>
  229. nnoremap <leader>s  :StripTrailingWhitespace<cr>
  230. nnoremap <leader>u  :UndotreeToggle<cr>
  231.  
  232. nnoremap <leader>dd :DevDocs<space>
  233. nnoremap <leader>dc :DevDocsUnderCursor<cr>
  234.  
  235. nnoremap <leader>fg :GFiles<cr>
  236. nnoremap <leader>fi :Files<cr>
  237. nnoremap <leader>fl :Lines<cr>
  238. nnoremap <leader>ft :Tags<cr>
  239.  
  240. nnoremap <leader>gb :Gblame<cr>
  241. nnoremap <leader>gd :Gdiff<cr>
  242. nnoremap <leader>ge :Gedit<cr>
  243. nnoremap <leader>gg :Git<space>
  244. nnoremap <leader>gl :silent! Gllog<cr>
  245. nnoremap <leader>gm :Gmerge<cr>
  246. nnoremap <leader>gr :Gread<cr>
  247. nnoremap <leader>gs :Gstatus<cr>
  248. nnoremap <leader>gw :Gwrite<cr>
  249.  
  250. nnoremap <leader>rb :Grepper-buffers<cr>
  251. nnoremap <leader>rg :Grepper<cr>
  252.  
  253. " --------------------------------
  254.  
  255. " buffer
  256. set hidden
  257.  
  258. " color
  259. set termguicolors
  260. silent! colorscheme onedark
  261.  
  262. " column
  263. set numberwidth=2
  264. set signcolumn=yes
  265.  
  266. " completion
  267. set completeopt+=menuone,noinsert,noselect
  268. set pumheight=10
  269.  
  270. " confirmation
  271. set confirm
  272.  
  273. " cursor
  274. set nostartofline
  275.  
  276. " indentation
  277. set expandtab
  278. set shiftround
  279. set shiftwidth=4
  280. set tabstop=4
  281.  
  282. " matching
  283. set showmatch
  284.  
  285. " message
  286. set noruler
  287. set noshowcmd
  288. set noshowmode
  289. set shortmess+=cF
  290.  
  291. " scroll
  292. set scrolloff=1
  293. set sidescrolloff=5
  294.  
  295. " search
  296. set gdefault
  297. set ignorecase
  298. set inccommand=nosplit
  299. set smartcase
  300.  
  301. " swap
  302. set noswapfile
  303.  
  304. " statusline
  305. set statusline=
  306.       \\ %{&filetype!=#''?&filetype:'none'}
  307.       \\ %{&readonly\|\|!&modifiable?&modified?'%*':'%%':&modified?'**':'--'}
  308.       \\ %{expand('%:~:.')!=#''?expand('%:~:.'):'[No\ Name]'}
  309.       \%=
  310.       \%l/%L%1(%)
  311.       \%p%%%1(%)
  312.  
  313. " undo
  314. set undofile
  315.  
  316. " update
  317. set lazyredraw
  318. set updatetime=150
  319.  
  320. " window
  321. set splitbelow
  322. set splitright
  323.  
  324. " wrapping
  325. set breakindent
  326. set linebreak
  327. let &showbreak = '↳ '
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement