155 lines
3.9 KiB
VimL
155 lines
3.9 KiB
VimL
filetype plugin indent on
|
||
|
||
let g:tex_flavor = 'latex'
|
||
|
||
" Deoplete
|
||
let g:deoplete#enable_at_startup = 1
|
||
|
||
" LanguageClient-neovim
|
||
let g:LanguageClient_serverCommands = {
|
||
\ 'elm': ['elm-language-server'],
|
||
\ 'rust': ['rustup', 'run', 'stable', 'rls'],
|
||
\ 'ruby': ['bundle', 'exec', 'srb', 'tc', '--lsp', '.'],
|
||
\ }
|
||
|
||
let g:LanguageClient_rootMarkers = {
|
||
\ 'elm': ['elm.json'],
|
||
\ 'typescriptreact': ['tsconfig.json'],
|
||
\ 'ruby': ['Gemfile'],
|
||
\ }
|
||
|
||
let g:LanguageClient_loggingFile = expand('~/.local/share/nvim/LanguageClient.log')
|
||
|
||
" ALE
|
||
let g:ale_fix_on_save = 1
|
||
let g:ale_elixir_credo_strict = 1
|
||
let g:ale_fixers = {
|
||
\ 'elm': ['elm-format', 'format'],
|
||
\ 'javascript': ['prettier'],
|
||
\ 'javascript.jsx': ['prettier'],
|
||
\ 'javascriptreact': ['prettier'],
|
||
\ 'typescriptreact': ['prettier'],
|
||
\ 'typescript': ['prettier'],
|
||
\ 'ruby': ['sorbet'],
|
||
\ 'rust': ['rustfmt'],
|
||
\ 'elixir': ['mix_format']
|
||
\}
|
||
let g:ale_linters_ignore = {
|
||
\ 'javascript': ['tsserver'],
|
||
\ 'javascriptreact': ['tsserver'],
|
||
\}
|
||
|
||
" Rainbow parentheses
|
||
let g:rainbow_conf = {
|
||
\ 'guifgs': ['RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3'],
|
||
\ 'ctermfgs': ['red', 'brown', 'blue', 'gray', 'green', 'magenta', 'cyan', 'darkred', 'brown', 'darkblue', 'gray', 'darkgreen', 'darkmagenta', 'darkcyan', 'red'],
|
||
\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold']
|
||
\}
|
||
let g:rainbow_active = 1
|
||
|
||
" Easymotion
|
||
map / <Plug>(easymotion-sn)
|
||
omap / <Plug>(easymotion-tn)
|
||
map n <Plug>(easymotion-next)
|
||
map N <Plug>(easymotion-prev)
|
||
let g:EasyMotion_landing_highlight = 0
|
||
|
||
" Vim-Test
|
||
nmap <silent> <leader>t :TestNearest<CR>
|
||
nmap <silent> <leader>T :TestFile<CR>
|
||
nmap <silent> <leader>a :TestSuite<CR>
|
||
nmap <silent> <leader>l :TestLast<CR>
|
||
nmap <silent> <leader>g :TestVisit<CR>
|
||
let test#strategy = "neovim"
|
||
|
||
|
||
nnoremap <leader>t :call LanguageClient_textDocument_hover()<CR>
|
||
nnoremap <leader>y :call LanguageClient_textDocument_definition()<CR>
|
||
|
||
" Indent guides
|
||
let g:indent_guides_enable_on_vim_startup = 1
|
||
let g:indent_guides_start_level = 2
|
||
|
||
" let netrw look like NERDTree
|
||
let g:netrw_liststyle = 3
|
||
let mapleader=","
|
||
set nobackup
|
||
set noswapfile
|
||
set pastetoggle=<F2>
|
||
set nowrap
|
||
|
||
set background=dark
|
||
colorscheme PaperColor
|
||
|
||
set nocompatible
|
||
set number relativenumber
|
||
set numberwidth=1
|
||
set cursorline
|
||
set cursorcolumn
|
||
set ruler
|
||
set list
|
||
set listchars=tab:>-,trail:-,extends:>,precedes:<,nbsp:+,eol:$
|
||
set matchpairs+=<:>
|
||
set ts=2
|
||
set shiftwidth=2
|
||
set expandtab
|
||
|
||
" Open new split panes to right and bottom, which feels more natural
|
||
set splitbelow
|
||
set splitright
|
||
|
||
""" Searching and Patterns
|
||
set ignorecase
|
||
set smartcase
|
||
set smarttab
|
||
set hlsearch
|
||
" Add the g flag to search/replace by default
|
||
set gdefault
|
||
|
||
"recalculate the trailing whitespace warning when idle, and after saving
|
||
autocmd cursorhold,bufwritepost * unlet! b:statusline_trailing_space_warning
|
||
|
||
" strip trailing whitespace
|
||
autocmd BufWritePre * :%s/\s\+$//e
|
||
|
||
""" Handy remaps
|
||
noremap ; :
|
||
inoremap jj <Esc>
|
||
map <silent> <leader>V :source ~/.config/nvim/init.vim<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR>
|
||
map \q :q<CR>
|
||
map \w :w<CR>
|
||
noremap Q <nop>
|
||
|
||
""" Esperanto digraphs (for use with ctrl-k)
|
||
:digraph Cx 264
|
||
:digraph cx 265
|
||
:digraph Gx 284
|
||
:digraph gx 285
|
||
:digraph Hx 292
|
||
:digraph hx 293
|
||
:digraph Jx 308
|
||
:digraph jx 309
|
||
:digraph Sx 348
|
||
:digraph sx 349
|
||
:digraph Ux 364
|
||
:digraph ux 365
|
||
|
||
""" Terminal mode remaps
|
||
tnoremap <Esc> <C-\><C-n>
|
||
nnoremap <leader>o :below 10sp term://$SHELL<cr>i
|
||
|
||
" Quicker window movement
|
||
nnoremap <C-j> <C-w>j
|
||
nnoremap <C-k> <C-w>k
|
||
nnoremap <C-h> <C-w>h
|
||
nnoremap <C-l> <C-w>l
|
||
|
||
" Don’t reset cursor to start of line when moving around.
|
||
set nostartofline
|
||
" minimal number of lines to keep above/below cursorline
|
||
set scrolloff=10
|
||
|
||
" Local overrides?
|
||
if filereadable($HOME . "/.vimrc.local")
|
||
source ~/.vimrc.local
|
||
endif
|