From ea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd Mon Sep 17 00:00:00 2001 From: Kent Smith Date: Fri, 7 Jun 2019 10:51:28 -0600 Subject: initial commit --- .vimrc | 273 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 .vimrc (limited to '.vimrc') 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 p :Files + +" Easy bindings for its various modes +nmap bb :Buffers + +" 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 jd :YcmCompleter GoTo + +Plug 'chaquotay/ftl-vim-syntax' + +Plug 'itchyny/lightline.vim' +let g:lightline = { + \ 'colorscheme': 'PaperColor', + \ } + +Plug 'scrooloose/nerdtree' +nnoremap . :NERDTreeToggle +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 gn :GitGutterNextHunk +nnoremap gp :GitGutterPrevHunk + +Plug 'fatih/vim-go' +nnoremap f :GoFmt +nnoremap t :GoTestFunc +nnoremap at :GoTest +nnoremap s :GoAlternate +nnoremap d :GoDecls +nnoremap ad :GoDeclsDir +nnoremap ld :GoDefStack +nnoremap bd :GoDefPop +nnoremap i :GoInfo +nnoremap rr :GoReferrers +nnoremap u :GoCallees + +Plug 'majutsushi/tagbar' +nnoremap tb :TagbarToggle + +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 jj :BuffergatorMruCyclePrev + +" Go to the next buffer open +nmap kk :BuffergatorMruCycleNext + +" View the entire list of buffers open +nmap bl :BuffergatorOpen + +" 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= +" 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 "+y + +" remove annoying help window +inoremap +nnoremap +vnoremap + +" easy .vimrc editing +nnoremap rs :source ~/.vimrc +nnoremap rt :tabnew ~/.vimrc + +" better window navigation +nnoremap j +nnoremap k +nnoremap h +nnoremap l + +" quickfix +nnoremap :cnext +nnoremap :cprevious + +" hulk smash escape +inoremap jk +inoremap kj + +" buffer switching +noremap :bp +noremap :bn + +" unhighlight search results +noremap / :nohls + +noremap x :%!xmllint --format - +" reselect visual block after indent/outdent +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 bq :bp bd # + +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 -- cgit v1.2.3