You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
4.3 KiB

8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
3 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
7 years ago
8 years ago
8 years ago
7 years ago
7 years ago
  1. if empty(glob('~/.config/nvim/autoload/plug.vim'))
  2. silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
  3. \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  4. autocmd VimEnter * PlugInstall
  5. endif
  6. call plug#begin()
  7. " Plugins
  8. Plug 'miyakogi/seiya.vim'
  9. Plug 'ctrlpvim/ctrlp.vim'
  10. Plug 'FelikZ/ctrlp-py-matcher'
  11. Plug 'jeetsukumaran/vim-filebeagle'
  12. Plug 'bling/vim-airline'
  13. Plug 'vim-airline/vim-airline-themes'
  14. Plug 'scrooloose/nerdtree'
  15. Plug 'christoomey/vim-tmux-navigator'
  16. Plug 'editorconfig/editorconfig-vim'
  17. Plug 'mhinz/vim-grepper'
  18. Plug 'tomtom/tcomment_vim'
  19. Plug 'ap/vim-css-color'
  20. Plug 'autozimu/LanguageClient-neovim', { 'do': ':UpdateRemotePlugins' }
  21. Plug 'neomake/neomake'
  22. Plug 'ludovicchabant/vim-gutentags'
  23. " Colorschemes
  24. Plug 'whatyouhide/vim-gotham'
  25. Plug 'flazz/vim-colorschemes'
  26. "HTML & CSS
  27. Plug 'hail2u/vim-css3-syntax'
  28. Plug 'othree/html5.vim'
  29. Plug 'Valloric/MatchTagAlways'
  30. Plug 'digitaltoad/vim-jade'
  31. "Javascript
  32. "PHP
  33. Plug 'StanAngeloff/php.vim', {'for': 'php'}
  34. Plug 'lumiliet/vim-twig'
  35. Plug 'roxma/LanguageServer-php-neovim', {'do': 'composer install && composer run-script parse-stubs', 'for': 'php'}
  36. Plug 'SirVer/ultisnips' | Plug 'phux/vim-snippets'
  37. "Git plugin
  38. Plug 'tpope/vim-fugitive'
  39. " Lua
  40. Plug 'xolox/vim-misc'
  41. Plug 'xolox/vim-lua-ftplugin'
  42. "Vue
  43. Plug 'posva/vim-vue'
  44. Plug 'sbdchd/neoformat'
  45. Plug 'wakatime/vim-wakatime'
  46. " Donnie says this is important
  47. function! DoRemote(arg)
  48. UpdateRemotePlugins
  49. endfunction
  50. call plug#end()
  51. let g:airline#extensions#tabline#enabled = 1
  52. let g:airline#extensions#neomake#enabled = 0
  53. syntax on
  54. colorscheme gotham
  55. set tabstop=2
  56. set expandtab
  57. set shiftwidth=2
  58. set smartcase
  59. set hlsearch
  60. set number
  61. set autoindent
  62. set incsearch
  63. set clipboard+=unnamedplus
  64. set noswapfile
  65. set t_Co=256
  66. set hidden
  67. set relativenumber
  68. set list listchars=tab:»·,trail,nbsp
  69. set termguicolors
  70. set tags=.tags,./tags,tags;
  71. let g:airline_theme="gotham"
  72. "Option + Left and Right switch buffers
  73. "execute "set <M-Right>=\e\eC"
  74. "execute "set <M-Left>=\e\eD"
  75. nnoremap <silent> <C-Right> :bnext<CR>
  76. nnoremap <silent> <C-Left> :bprevious<CR>
  77. nnoremap <silent> <C-Del> :bd<CR>
  78. "Syntastic default settings
  79. set statusline+=%#warningmsg#
  80. set statusline+=%{SyntasticStatuslineFlag()}
  81. set statusline+=%*
  82. " let g:deoplete#sources#padawan#add_parentheses = 1
  83. " needed for echodoc to work if add_parentheses is 1
  84. " let g:deoplete#sources = get(g:,'deoplete#sources',{})
  85. " let g:deoplete#sources.php = ['padawan', 'ultisnips', 'tags', 'buffer', 'LanguageClient']
  86. function! GutentagsFilter(path) abort
  87. if fnamemodify(a:path, ':e') == 'java'
  88. return 0
  89. elseif fnamemodify(a:path, ':e') == ''
  90. return 0
  91. elseif fnamemodify(a:path, ':e') == 'xml'
  92. return 0
  93. elseif fnamemodify(a:path, ':e') == 'gradle'
  94. return 0
  95. else
  96. return 1
  97. endif
  98. endfunction
  99. let g:gutentags_enabled_user_func = 'GutentagsFilter'
  100. let g:gutentags_ctags_tagfile = '.tags'
  101. let g:gutentags_ctags_executable_php = 'ctags --langmap=php:.engine.inc.module.theme.install.php --php-kinds=cdfi --fields=+l'
  102. " only start lsp when opening php files
  103. au filetype php LanguageClientStart
  104. " use LSP completion on ctrl-x ctrl-o as fallback for padawan in legacy projects
  105. au filetype php set omnifunc=LanguageClient#complete
  106. " no need for diagnostics, we're going to use neomake for that
  107. let g:LanguageClient_diagnosticsEnable = 0
  108. let g:LanguageClient_signColumnAlwaysOn = 0
  109. " I only use these 3 mappings
  110. nnoremap <silent> gd :call LanguageClient_textDocument_definition()<CR>
  111. nnoremap <silent> gr :call LanguageClient_textDocument_references()<CR>
  112. nnoremap K :call LanguageClient_textDocument_hover()<cr>
  113. " cycle through menu items with tab/shift+tab
  114. inoremap <expr> <TAB> pumvisible() ? "\<c-n>" : "\<TAB>"
  115. inoremap <expr> <s-tab> pumvisible() ? "\<c-p>" : "\<TAB>"
  116. autocmd BufWritePost * Neomake
  117. let g:neomake_error_sign = {'text': '✖', 'texthl': 'NeomakeErrorSign'}
  118. let g:neomake_warning_sign = {'text': '∆', 'texthl': 'NeomakeWarningSign'}
  119. let g:neomake_message_sign = {'text': '➤', 'texthl': 'NeomakeMessageSign'}
  120. let g:neomake_info_sign = {'text': 'ℹ', 'texthl': 'NeomakeInfoSign'}
  121. let g:UltiSnipsExpandTrigger="<c-j>"
  122. let g:UltiSnipsJumpForwardTrigger="<c-j>"
  123. let g:UltiSnipsJumpBackwardTrigger="<c-b>"
  124. " PHP7
  125. let g:ultisnips_php_scalar_types = 1
  126. let g:seiya_auto_enable=1
  127. let g:seiya_target_groups = has('nvim') ? ['guibg'] : ['ctermbg']