8 let g:polyglot_disabled = ['sensible']
12 Plug 'ap/vim-css-color' " Highlight css colors
13 Plug 'ctrlpvim/ctrlp.vim' " Fuzzy file finding
14 Plug 'editorconfig/editorconfig-vim' " Follow editorconfig
15 Plug 'godlygeek/tabular' " Line things up
16 Plug 'lifepillar/vim-mucomplete' " Simple autocompletion
17 Plug 'meain/hima-vim' " Nice color scheme
18 Plug 'neovim/nvim-lspconfig' " LSP configurations
19 Plug 'sheerun/vim-polyglot' " Language pack
20 Plug 'tpope/vim-commentary' " Easily comment
21 Plug 'tpope/vim-rsi' " Readline bindings
22 Plug 'tpope/vim-sensible' " Sensible defaults
23 Plug 'tpope/vim-speeddating' " Modify dates with C-a, C-x
24 Plug 'tpope/vim-surround' " Easily modify sorrounding characters
31 " Easier split movement
32 nnoremap <C-j> <C-w><C-j>
33 nnoremap <C-k> <C-w><C-k>
34 nnoremap <C-l> <C-w><C-l>
35 nnoremap <C-h> <C-w><C-h>
37 " Clear search highlighting
38 nnoremap <silent> <C-c> :noh<CR>
41 set completeopt+=menuone
42 set completeopt-=preview
47 local lspconfig = require('lspconfig')
49 local on_attach = function(client, bufnr)
51 local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr,
53 local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr,
56 -- Use omnifunc for completion
57 buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
60 local opts = { noremap=true, silent=true }
61 buf_set_keymap('n', 'gD',
62 '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
63 buf_set_keymap('n', 'gd',
64 '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
65 buf_set_keymap('n', 'gr',
66 '<cmd>lua vim.lsp.buf.references()<CR>', opts)
67 buf_set_keymap('n', 'K',
68 '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
69 buf_set_keymap('n', '<space>rn',
70 '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
71 buf_set_keymap('n', '[d',
72 '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
73 buf_set_keymap('n', ']d',
74 '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
82 for _, server in ipairs(servers) do
83 lspconfig[server].setup {on_attach = on_attach}