diff options
author | Kent Smith <smitkent@isu.edu> | 2019-06-07 10:51:28 -0600 |
---|---|---|
committer | Kent Smith <smitkent@isu.edu> | 2019-06-07 10:51:28 -0600 |
commit | ea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd (patch) | |
tree | 919e4ec3df2a00276edf276215a81861014a9f7e /.vimrc | |
download | cfg-ea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd.tar.gz cfg-ea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd.tar.bz2 |
initial commit
Diffstat (limited to '.vimrc')
-rw-r--r-- | .vimrc | 273 |
1 files changed, 273 insertions, 0 deletions
@@ -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 |