summaryrefslogtreecommitdiffstats
path: root/.vimrc
diff options
context:
space:
mode:
authorKent Smith <smitkent@isu.edu>2019-06-07 10:51:28 -0600
committerKent Smith <smitkent@isu.edu>2019-06-07 10:51:28 -0600
commitea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd (patch)
tree919e4ec3df2a00276edf276215a81861014a9f7e /.vimrc
downloadcfg-ea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd.tar.gz
cfg-ea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd.tar.bz2
initial commit
Diffstat (limited to '.vimrc')
-rw-r--r--.vimrc273
1 files changed, 273 insertions, 0 deletions
diff --git a/.vimrc b/.vimrc
new file mode 100644
index 0000000..f5b9097
--- /dev/null
+++ b/.vimrc
@@ -0,0 +1,273 @@
+set nocompatible
+filetype off
+
+" easier to reach than \
+let mapleader=" "
+
+" vim-plug
+if empty(glob('~/.vim/autoload/plug.vim'))
+ silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
+ \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
+ autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
+endif
+
+call plug#begin('~/.vim/plugged')
+
+" git wrapper
+Plug 'tpope/vim-fugitive'
+
+" ack wrapper. :Ack
+Plug 'mileszs/ack.vim'
+
+Plug 'mutewinter/nginx.vim'
+
+Plug 'scrooloose/nerdcommenter'
+
+Plug 'mustache/vim-mustache-handlebars'
+
+" better than ctrl-p
+Plug 'junegunn/fzf'
+Plug 'junegunn/fzf.vim'
+
+" Use a leader instead of the actual named binding
+nmap <leader>p :Files<cr>
+
+" Easy bindings for its various modes
+nmap <leader>bb :Buffers<cr>
+
+" rename a buffer. :rename[!] {newname}
+Plug 'danro/rename.vim'
+
+" ugh this thing
+Plug 'Valloric/YouCompleteMe'
+let g:ycm_rust_src_path = '~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src'
+nnoremap <leader>jd :YcmCompleter GoTo<CR>
+
+Plug 'chaquotay/ftl-vim-syntax'
+
+Plug 'itchyny/lightline.vim'
+let g:lightline = {
+ \ 'colorscheme': 'PaperColor',
+ \ }
+
+Plug 'scrooloose/nerdtree'
+nnoremap <silent><Leader>. :NERDTreeToggle<CR>
+autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
+
+Plug 'vim-scripts/forth.vim'
+
+Plug 'rust-lang/rust.vim'
+let g:rustfmt_autosave = 1
+
+Plug 'cespare/vim-toml'
+
+Plug 'airblade/vim-gitgutter'
+nnoremap <silent><Leader>gn :GitGutterNextHunk<CR>
+nnoremap <silent><Leader>gp :GitGutterPrevHunk<CR>
+
+Plug 'fatih/vim-go'
+nnoremap <silent><Leader>f :GoFmt<CR>
+nnoremap <silent><Leader>t :GoTestFunc<CR>
+nnoremap <silent><Leader>at :GoTest<CR>
+nnoremap <silent><Leader>s :GoAlternate<CR>
+nnoremap <silent><Leader>d :GoDecls<CR>
+nnoremap <silent><Leader>ad :GoDeclsDir<CR>
+nnoremap <silent><Leader>ld :GoDefStack<CR>
+nnoremap <silent><Leader>bd :GoDefPop<CR>
+nnoremap <silent><Leader>i :GoInfo<CR>
+nnoremap <silent><Leader>rr :GoReferrers<CR>
+nnoremap <silent><Leader>u :GoCallees<CR>
+
+Plug 'majutsushi/tagbar'
+nnoremap <silent><Leader>tb :TagbarToggle<CR>
+
+Plug 'tpope/vim-rails'
+
+Plug 'NLKNguyen/papercolor-theme'
+
+" gitk in vim basically
+Plug 'cohama/agit.vim'
+
+Plug 'jeetsukumaran/vim-buffergator'
+" Use the right side of the screen
+let g:buffergator_viewport_split_policy = 'R'
+
+" I want my own keymappings...
+let g:buffergator_suppress_keymaps = 1
+
+" Looper buffers
+"let g:buffergator_mru_cycle_loop = 1
+
+" Go to the previous buffer open
+nmap <leader>jj :BuffergatorMruCyclePrev<cr>
+
+" Go to the next buffer open
+nmap <leader>kk :BuffergatorMruCycleNext<cr>
+
+" View the entire list of buffers open
+nmap <leader>bl :BuffergatorOpen<cr>
+
+" Asynchronous Lint Engine
+Plug 'w0rp/ale'
+
+" Unixy stuff
+Plug 'tpope/vim-eunuch'
+
+call plug#end()
+
+filetype plugin indent on
+
+set rtp+=$GOROOT/misc/vim
+
+syntax enable
+
+set encoding=utf-8
+set showcmd
+
+set pastetoggle=<F2>
+" leave paste mode so i don't forget
+au InsertLeave * set nopaste
+
+" whitespace
+set wrap " don't wrap lines
+set textwidth=79
+set formatoptions=qrn1
+set tabstop=2 shiftwidth=2 " a tab is two spaces (or set this to 4)
+set expandtab " use spaces, not tabs (optional)
+set backspace=indent,eol,start " backspace through everything in insert mode
+
+set lazyredraw " don't update the screen when executing macros
+
+set completeopt-=preview " hide the Scratch window when autocompleting
+
+" searching
+set hlsearch " highlight matches
+set incsearch " incremental searching
+set ignorecase " searches are case insensitive...
+set smartcase " ... unless they contain at least one capital letter
+set gdefault
+
+set showmatch " Show matching brackets.
+set matchtime=5 " Bracket blinking.
+set novisualbell " No blinking
+set noerrorbells " No noise.
+set laststatus=2 " Always show status line.
+set vb t_vb= " disable any beeps or flashes on error
+set ruler
+set showcmd " Display an incomplete command in the lower right corner of the Vim window
+set shortmess=atI " Shortens messages
+
+set nolist " Display unprintable characters f12 - switches
+set listchars=tab:·\ ,eol:¶,trail:·,extends:»,precedes:« " Unprintable chars mapping
+
+set foldenable " Turn on folding
+set foldmethod=marker " Fold on the marker
+set foldlevel=100 " Don't autofold anything (but I can still fold manually)
+set foldopen=block,hor,mark,percent,quickfix,tag " what movements open folds
+
+" start scrolling when we're 8 lines away from margins
+set scrolloff=8
+set sidescrolloff=15
+set sidescroll=1
+
+set noswapfile
+set nobackup
+set nowb
+set hidden
+
+" Automatically insert the current comment leader after hitting 'o' or 'O' in Normal mode.
+set fo+=o
+" Do not automatically insert a comment leader after an enter
+set fo-=r
+" Do no auto-wrap text using textwidth (does not apply to comments)
+set fo-=t
+
+set mouse=a
+
+" make mouse work in st
+set ttymouse=xterm2
+
+set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/vendor/*,*/bin/*,*/node_modules/*
+
+" quicker update time for things like tagbar
+set updatetime=500
+
+" taller vertical bar for vsplits
+set fillchars+=vert:│
+
+" company standard bleh
+autocmd FileType java setlocal shiftwidth=4 tabstop=4
+
+autocmd FileType go setlocal noexpandtab
+
+autocmd BufNewFile,BufRead *.shl set syntax=sh
+
+" When opening a file, always jump to the last cursor position
+autocmd BufReadPost *
+\ if line("'\"") > 0 && line ("'\"") <= line("$") |
+\ exe "normal g'\"" |
+\ endif
+
+" easily copy to system clipboard
+vnoremap <C-c> "+y
+
+" remove annoying help window
+inoremap <F1> <nop>
+nnoremap <F1> <nop>
+vnoremap <F1> <nop>
+
+" easy .vimrc editing
+nnoremap <silent> <Leader>rs :source ~/.vimrc<CR>
+nnoremap <silent> <Leader>rt :tabnew ~/.vimrc<CR>
+
+" better window navigation
+nnoremap <c-j> <c-w>j
+nnoremap <c-k> <c-w>k
+nnoremap <c-h> <c-w>h
+nnoremap <c-l> <c-w>l
+
+" quickfix
+nnoremap <c-n> :cnext<CR>
+nnoremap <c-b> :cprevious<CR>
+
+" hulk smash escape
+inoremap jk <Esc>
+inoremap kj <Esc>
+
+" buffer switching
+noremap <left> :bp<CR>
+noremap <right> :bn<CR>
+
+" unhighlight search results
+noremap <silent><Leader>/ :nohls<CR>
+
+noremap <silent><Leader>x :%!xmllint --format -<CR>
+" reselect visual block after indent/outdent
+vnoremap < <gv
+vnoremap > >gv
+
+" force saving files that require root permission
+cmap w!! %!sudo tee > /dev/null %
+
+" Close the current buffer and move to the previous one
+" This replicates the idea of closing a tab
+nmap <leader>bq :bp <BAR> bd #<CR>
+
+if &t_Co >= 256 || has('gui-running')
+ set background=dark
+ colorscheme PaperColor
+endif
+
+set nu
+if version >= 703
+ set undodir=~/.vim/backups
+ set undofile
+ set relativenumber
+endif
+
+highlight clear SignColumn
+
+set t_ku=OA
+set t_kd=OB
+set t_kr=OC
+set t_kl=OD