blob: 13ecca5b6de2086c10c3b8567a625ae843f99d03 (
plain) (
tree)
|
|
source /usr/share/vim/vim82/defaults.vim
source /etc/vimrc
let NERDTreeIgnore=['\.o$', '\.cmo$', '\.cmx$', '\.cmi$', '\.lib$', '\.pyc$', '^__pycache__$', '\.class$']
set encoding=utf-8
set cmdheight=2
if has("patch-8.1.1564")
" Recently vim can merge signcolumn and number column into one
set signcolumn=number
else
set signcolumn=yes
endif
set exrc
set hlsearch
set number
set relativenumber
let mapleader=","
" Tab modes.
map <leader>m <Esc>:set expandtab ts=2 sw=2 sts=2<CR>
map <leader>t <Esc>:set noexpandtab ts=4 sw=4 sts=4<CR>
map <leader>T <Esc>:set expandtab ts=4 sw=4 sts=4<CR>
set pastetoggle=<F2>
" reload config
map <leader>c <Esc>:source ~/.vimrc<CR>
" FZF bindings
"
" map <leader>f <Esc>:FZF<CR>
map ; <Esc>:FZF<CR>
map \ <Esc>:Vista finder coc<CR>
map <leader>b <Esc>:Vista<CR>
" Diagnostic messages
map <leader>d <Esc>:CocDiagnostics<CR>
" map <leader>l <Esc>:ALENextWrap<CR>
nmap <silent> <leader>s <Plug>(coc-diagnostic-prev)
nmap <silent> <leader>f <Plug>(coc-diagnostic-next)
" map <C-n> <Esc>:cnext<CR>
" map <C-m> <Esc>:cprevious<CR>
" GoTo code navigation.
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window.
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('<cword>')
endif
endfunction
" tab completion (coc)
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Symbol renaming.
nmap <leader>rn <Plug>(coc-rename)
" Formatting selected code.
"xmap <leader>f <Plug>(coc-format-selected)
"nmap <leader>f <Plug>(coc-format-selected)
" Append modeline after last line in buffer.
" Use substitute() instead of printf() to handle '%%s' modeline in LaTeX
" files.
function! AppendModeline()
let l:modeline = printf(" vim: set sts=%d ts=%d sw=%d tw=%d %set :",
\ &softtabstop, &tabstop, &shiftwidth, &textwidth, &expandtab ? '' : 'no')
let l:modeline = substitute(&commentstring, "%s", l:modeline, "")
call append(line("$"), l:modeline)
endfunction
nnoremap <silent> <Leader>ml :call AppendModeline()<CR>
filetype plugin indent on
set autoindent
set smartindent
set ts=4 sw=4
" indentation for long line wraps
set wrap
set linebreak
set breakindent
let &showbreak = '> '
set bg=dark
au FileType make setl noexpandtab
au FileType python setl sw=4 sts=4 et
au FileType html setl sw=2 sts=2 et
au FileType htmldjango setl sw=2 sts=2 et
au FileType json setl sw=2 sts=2 et
au FileType javascript setl sw=2 sts=2 et
au FileType yaml setl sw=2 sts=2 et
au FileType css setl sw=4 sts=4 et
au FileType lua setl ts=4 sw=4 noet
au FileType trema setl ts=2 sts=2 et
au FileType typescript.tsx setl ts=2 sts=2 et
au FileType rust setl ts=4 sw=4 noet
au FileType tex setl indentexpr= nosi ai sw=4 sts=4 et
let g:ale_linters = {'rust': ['analyzer']}
highlight Pmenu ctermbg=gray guibg=gray
colorscheme solarized8
|