dotfiles/vimrc

112 lines
2.9 KiB
VimL

packloadall
call pathogen#infect()
syntax on
filetype on
filetype indent on
filetype plugin on
let mapleader = ","
set autowrite
set backspace=indent,eol,start
set backupdir^=~/.vim/_backup//
set cursorline
set cursorcolumn
set directory^=~/.vim/_temp//
set encoding=utf8
set hlsearch
set ignorecase
set incsearch
set laststatus=2
set linebreak
set modeline
set nowrap
set number
set smartcase
set statusline+=%#warningmsg#
set statusline+=%*
set tabstop=4
set updatetime=100
set textwidth=67
if has("persistent_undo")
set undodir=~/.vim/_undo//
set undofile
endif
au BufRead,BufNewFile *.gcfg setfiletype gitconfig
au BufRead,BufNewFile *.hcl setfiletype hcl
au BufRead,BufNewFile *.nomad setfiletype hcl
au BufRead,BufNewFile *.service setfiletype systemd
au BufRead,BufNewFile .Rprofile setfiletype r
au BufRead,BufNewFile .envrc setfiletype sh
au BufRead,BufNewFile Dockerfile* setfiletype dockerfile
au BufRead,BufNewFile Pipfile setfiletype toml
au BufRead,BufNewFile kubectl-edit-status-* setfiletype yaml
au BufWritePre *.py execute ':Black'
au BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <Leader>c <Plug>(go-coverage-toggle)
au QuickFixCmdPost *grep* cwindow
" run :GoBuild or :GoTestCompile based on the go file
function! s:build_go_files()
let l:file = expand('%')
if l:file =~# '^\f\+_test\.go$'
call go#test#Test(0, 1)
elseif l:file =~# '^\f\+\.go$'
call go#cmd#Build(0)
endif
endfunction
au FileType go nmap <leader>b :<C-u>call <SID>build_go_files()<CR>
au FileType go nmap <leader>d :GoDef<CR>
au FileType go nmap <leader>N :GoRename<CR>
au FileType go nmap <leader>R :GoReferrers<CR>
map <leader>t :w<CR>
map <leader>- :nohl<CR>
map <leader>w :%s/ *$//<CR>
let g:EditorConfig_exclude_patterns = ['fugitive://.*', 'scp://.*']
let g:airline_powerline_fonts = 1
let g:coc_global_extensions = ['coc-tsserver']
let g:coc_node_path = "/home/dan/.nvm/versions/node/v16.9.1/bin/node"
let g:go_auto_sameids = 1
let g:go_auto_type_info = 1
let g:go_def_mode='gopls'
let g:go_fmt_command = "goimports"
let g:go_highlight_build_constraints = 1
let g:go_highlight_extra_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_function_calls = 1
let g:go_highlight_functions = 1
let g:go_highlight_operators = 1
let g:go_info_mode='gopls'
let g:html_indent_script1 = "inc"
let g:html_indent_style1 = "inc"
let g:python_highlight_all = 1
let g:rustfmt_autosave = 1
let g:shfmt_extra_args = '-i 2'
let g:shfmt_fmt_on_save = 1
let g:terraform_align = 1
let g:terraform_fmt_on_save = 1
let g:vim_markdown_folding_disabled = 1
let g:vim_markdown_frontmatter = 1
let g:yapf_style = "pep8"
packadd! dracula
colorscheme dracula
hi Comment cterm=NONE ctermfg=DarkRed gui=NONE guifg=red2
nmap <leader>sp :call <SID>SynStack()<CR>
function! <SID>SynStack()
if !exists("*synstack")
return
endif
echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunc