loadout/nvim/init.vim

157 lines
4.6 KiB
VimL

set noswapfile
" PaperColor ###############################################################
set background=light
colorscheme PaperColor
" Deoplete #################################################################
let g:deoplete#enable_at_startup = 1
" use tab to cycle
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
" close preview when leaving insert
autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif
" use omni completion for go, provided by vim-go
call deoplete#custom#option('omni_patterns', { 'go': '[^. *\t]\.\w*' })
" NERDTree #################################################################
let NERDTreeMouseMode=3
let NERDTreeMinimalUI=1
let NERDTreeAutoDeleteBuffer=1
let NERDTreeHighlightCursorline=1
let NERDTreeShowHidden=1
let g:NERDTreeIndicatorMapCustom = {
\ "Modified" : "Δ",
\ "Staged" : "✚",
\ "Untracked" : "✭",
\ "Renamed" : "➜",
\ "Unmerged" : "☢",
\ "Deleted" : "-",
\ "Dirty" : "Δ",
\ "Clean" : "",
\ "Unknown" : ""
\ }
map <C-n> :NERDTreeToggle<CR>
" always enter term buffer in insert mode
autocmd BufEnter * if &buftype == 'terminal' | :startinsert | endif
" vim-go ###################################################################
let g:go_fmt_autosave = 1
let g:go_fmt_command="goimports"
" rust.vim ###################################################################
let g:rustfmt_autosave = 1
" neomake ##################################################################
autocmd! BufWritePost * Neomake
"let g:neomake_verbose=3
"let g:neomake_logfile='/tmp/neomake.log'
" Always run clippy on rust projects
autocmd! BufWritePost *.rs Neomake! clippy
" the sidebar sign placement wasn't playing nice with gitgutter, so use the
" location list instead. But location list is kinda dumb cause it pops open
" multiple times and at weird times, sooo.... fuck it
"let g:neomake_open_list=2
let g:neomake_open_list=0
let g:neomake_place_signs=0
let g:neomake_markdown_enabled_makers = ['misspell']
let g:neomake_markdown_misspell_maker = {
\ 'errorformat': '%f:%l:%c:%m',
\ }
" mine #####################################################################
"Makes current line/column highlighted, and set text width
set tw=80
set colorcolumn=+1
hi ColorColumn ctermfg=none ctermbg=grey cterm=none
"Buffers scroll a bit so cursor doens't go all the way to the bottom before
"scroll begins
set scrolloff=3
"Makes all .swp files go to /tmp instead of . CAUSE FUCK DA POLICE
set backupdir=/tmp
set directory=/tmp
"Better indenting
set autoindent
set expandtab
set tabstop=4
set shiftwidth=4
"Show eol and tabs
set list
set listchars=trail:░,tab:►\ ,extends:>,precedes:<
"Don't highlight search matches, don't jump while mid-search
set noincsearch
set nohlsearch
"We want certain types to only have 2 space for tabs
au FileType clojure setlocal tabstop=2 shiftwidth=2
au FileType ruby setlocal tabstop=2 shiftwidth=2
au FileType yaml setlocal tabstop=2 shiftwidth=2
au FileType html setlocal tabstop=2 shiftwidth=2
au FileType proto setlocal tabstop=2 shiftwidth=2
au FileType javascript setlocal tabstop=2 shiftwidth=2
au FileType typescript setlocal tabstop=2 shiftwidth=2
"We want certain types to use tabs instead of spaces
au FileType go setlocal nolist noexpandtab
au FileType make setlocal nolist noexpandtab
"terminal shortcuts
tnoremap <leader><leader> \
tnoremap <leader> <C-\><C-n>
"tab shortcuts for terminal mode have terminal escape code preceding them
tnoremap <leader>tn <C-\><C-n>:tabe term://zsh<CR>
tnoremap <leader>tN <C-\><C-n>:tabe<CR>
tnoremap <leader>ts <C-\><C-n>:vs term://zsh<CR>
tnoremap <leader>tS <C-\><C-n>:vnew<CR>
tnoremap <leader>ti <C-\><C-n>:sp term://zsh<CR>
tnoremap <leader>tI <C-\><C-n>:new<CR>
tnoremap <leader>th <C-\><C-n>gT
tnoremap <leader>tH <C-\><C-n>:-tabmove<CR>
tnoremap <leader>tl <C-\><C-n>gt
tnoremap <leader>tL <C-\><C-n>:+tabmove<CR>
tnoremap <leader>tx <C-\><C-n>:tabclose<CR>
"tab shortcuts
noremap <leader>tn :tabe term://zsh<CR>
noremap <leader>tN :tabe<CR>
noremap <leader>ts :vs term://zsh<CR>
noremap <leader>tS :vnew<CR>
noremap <leader>ti :sp term://zsh<CR>
noremap <leader>tI :new<CR>
noremap <leader>th gT
noremap <leader>tH :-tabmove<CR>
noremap <leader>tl gt
noremap <leader>tL :+tabmove<CR>
noremap <leader>tx :tabclose<CR>
" yank/paste into/from clipboard
set clipboard+=unnamedplus
" Enable mouse in all modes
set mouse=
"Clojure specific mappings
" Eval outerform
au FileType clojure nmap <buffer> cpP :Eval<cr>
" Eval full page
au FileType clojure nmap <buffer> cpR :%Eval<cr>
" Disable Ex mode!
nnoremap Q <Nop>