2017-06-22 10:12:39 -04:00
|
|
|
scriptencoding utf-8
|
|
|
|
|
|
|
|
function GoPostUpdate()
|
|
|
|
:GoInstallBinaries
|
|
|
|
:GoUpdateBinaries
|
|
|
|
endfunction
|
|
|
|
|
2019-12-06 16:31:10 -05:00
|
|
|
" automatically install vim-plug if it doesn't exist
|
2021-05-01 19:27:24 -04:00
|
|
|
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
|
|
|
|
if empty(glob(data_dir . '/autoload/plug.vim'))
|
|
|
|
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
|
|
|
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
2019-12-06 16:31:10 -05:00
|
|
|
endif
|
|
|
|
|
2017-06-22 10:12:39 -04:00
|
|
|
call plug#begin($HOME.'/.nvim/plugged')
|
|
|
|
|
2019-04-23 21:26:35 -04:00
|
|
|
if has('nvim')
|
|
|
|
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
|
|
|
else
|
|
|
|
Plug 'Shougo/deoplete.nvim'
|
|
|
|
Plug 'roxma/nvim-yarp'
|
|
|
|
Plug 'roxma/vim-hug-neovim-rpc'
|
|
|
|
endif
|
|
|
|
let g:deoplete#enable_at_startup = 1
|
2017-06-22 10:12:39 -04:00
|
|
|
|
2021-05-01 19:22:18 -04:00
|
|
|
Plug 'morhetz/gruvbox'
|
2017-06-22 10:12:39 -04:00
|
|
|
Plug 'Chiel92/vim-autoformat'
|
|
|
|
Plug 'Lokaltog/vim-easymotion'
|
|
|
|
Plug 'airblade/vim-gitgutter'
|
|
|
|
Plug 'bling/vim-airline'
|
|
|
|
Plug 'bronson/vim-trailing-whitespace'
|
|
|
|
Plug 'fatih/vim-go', { 'do': ':exec GoPostUpdate()' }
|
2017-12-31 09:47:26 -05:00
|
|
|
Plug 'godlygeek/tabular'
|
2017-11-07 11:20:06 -05:00
|
|
|
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' }
|
2017-06-22 10:12:39 -04:00
|
|
|
Plug 'majutsushi/tagbar'
|
2018-06-07 10:15:13 -04:00
|
|
|
Plug 'moll/vim-bbye'
|
2017-06-22 10:12:39 -04:00
|
|
|
Plug 'rking/ag.vim'
|
|
|
|
Plug 'rust-lang/rust.vim', { 'for': 'rust' }
|
|
|
|
Plug 'scrooloose/nerdcommenter'
|
|
|
|
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
|
2018-07-19 17:00:18 -04:00
|
|
|
Plug 'sheerun/vim-polyglot'
|
2017-06-22 10:12:39 -04:00
|
|
|
Plug 'terryma/vim-multiple-cursors'
|
|
|
|
Plug 'tmux-plugins/vim-tmux-focus-events'
|
|
|
|
Plug 'tpope/vim-fugitive'
|
|
|
|
Plug 'tpope/vim-sensible'
|
|
|
|
Plug 'tpope/vim-surround'
|
|
|
|
Plug 'vim-airline/vim-airline-themes'
|
|
|
|
Plug 'w0rp/ale'
|
|
|
|
|
|
|
|
call plug#end()
|
|
|
|
|
2017-11-06 12:34:05 -05:00
|
|
|
" speed improvements for fzf
|
2017-06-22 10:12:39 -04:00
|
|
|
if executable('ag')
|
2018-03-27 10:02:46 -04:00
|
|
|
let $FZF_DEFAULT_COMMAND = 'ag --skip-vcs-ignores --nocolor -g "" -l'
|
2017-06-22 10:12:39 -04:00
|
|
|
endif
|
|
|
|
|
2021-05-01 19:22:18 -04:00
|
|
|
autocmd vimenter * ++nested colorscheme gruvbox " Color scheme
|
|
|
|
set laststatus=2 " Enable airline
|
|
|
|
let g:airline_theme = 'gruvbox' " Airline color scheme
|
|
|
|
let g:airline#extensions#tabline#enabled = 1 " Enable tab list in airline
|
2017-06-22 10:12:39 -04:00
|
|
|
let g:airline#extensions#tabline#left_sep = ' '
|
|
|
|
let g:airline#extensions#tabline#left_alt_sep = '|'
|
|
|
|
let g:airline#extensions#whitespace#mixed_indent_algo = 1
|
|
|
|
let g:airline_powerline_fonts = 1
|
2021-05-01 19:22:18 -04:00
|
|
|
set list " Show tabs
|
|
|
|
set listchars=tab:\|\ ,trail:· " Show whitestape by using the pipe symbol and dots
|
|
|
|
set tabstop=4 " Tabs look like 4 spaces
|
|
|
|
set softtabstop=0 noexpandtab " Tabs look like 4 spaces
|
|
|
|
set shiftwidth=4 " Tabs look like 4 spaces
|
|
|
|
set number " Show line numbers
|
|
|
|
set cursorline " Highlight entire line that cursor is on
|
|
|
|
let g:tagbar_left = 1 " Make tagbar appear on the left
|
|
|
|
autocmd CompleteDone * pclose " Remove scratchpad after selection
|
|
|
|
set mouse= " Disable mouse
|
|
|
|
set lazyredraw " Make large files bearable
|
|
|
|
set regexpengine=1 " Make searching large files bearable
|
2017-06-22 10:12:39 -04:00
|
|
|
|
2017-12-31 09:47:26 -05:00
|
|
|
" make J work with docblocks and such (if possible)
|
|
|
|
if v:version > 703 || v:version == 703 && has('patch541')
|
|
|
|
set formatoptions+=j
|
|
|
|
endif
|
|
|
|
|
2017-06-22 10:12:39 -04:00
|
|
|
" Enable syntax-highlighting for Go
|
|
|
|
let g:go_highlight_functions = 1
|
|
|
|
let g:go_highlight_methods = 1
|
|
|
|
let g:go_highlight_fields = 1
|
|
|
|
let g:go_highlight_types = 1
|
|
|
|
let g:go_highlight_operators = 1
|
|
|
|
let g:go_highlight_build_constraints = 1
|
|
|
|
|
|
|
|
" Use goimports instead of gofmt for import paths
|
|
|
|
let g:go_fmt_command = "goimports"
|
|
|
|
|
2019-04-23 21:26:35 -04:00
|
|
|
" Use golangci-lint instead of gometalinter for linting
|
|
|
|
let g:go_metalinter_command = "golangci-lint"
|
|
|
|
|
2017-11-06 12:34:05 -05:00
|
|
|
" Lint Go on save
|
|
|
|
let g:go_metalinter_autosave = 1
|
|
|
|
|
2019-04-23 21:26:35 -04:00
|
|
|
" enable autocompletion for Go
|
|
|
|
call deoplete#custom#option('omni_patterns', { 'go': '[^. *\t]\.\w*' })
|
|
|
|
|
2017-06-22 10:12:39 -04:00
|
|
|
" Key mappings
|
2017-11-06 12:34:05 -05:00
|
|
|
" use FZF for control p
|
|
|
|
map <C-p> :FZF <CR>
|
2017-06-22 10:12:39 -04:00
|
|
|
map <F2> :NERDTreeToggle <CR>
|
|
|
|
map <F3> :TagbarToggle <CR>
|
2017-11-06 12:34:05 -05:00
|
|
|
" clear search highlight until next search
|
|
|
|
map <F4> :noh <CR>
|