Vimrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set nocompatible | |
if has("syntax") | |
syntax on | |
endif | |
if has("autocmd") | |
" Automatically reload vimrc after saving | |
autocmd bufwritepost .vimrc source $MYVIMRC | |
" Remember last position in file | |
autocmd BufReadPost * | |
\ if line("'\"") > 1 && line("'\"") <= line("$") | | |
\ exe "normal! g`\"" | | |
\ endif | |
filetype plugin indent on | |
endif | |
" The following are commented out as they cause vim to behave a lot | |
" differently from regular Vi. They are highly recommended though. | |
set showcmd " Show (partial) command in status line. | |
set showmatch " Show matching brackets. | |
set ignorecase " Do case insensitive matching | |
set smartcase " Do smart case matching | |
set incsearch " Incremental search | |
set autowrite " Automatically save before commands like :next and :make | |
set hidden " Hide buffers when they are abandoned | |
set tabstop=4 | |
set shiftwidth=4 | |
set expandtab | |
set hidden | |
set history=1000 | |
set ruler | |
set spell spelllang=en_us | |
set backspace=2 | |
"set colorcolumn=80 | |
"set number | |
"nnoremap <F2> :NumbersToggle<CR> | |
highlight ColorColumn ctermbg=magenta | |
call matchadd('ColorColumn', '\%81v', 100) | |
"Many of these are from http://items.sjbach.com/319/configuring-vim-right | |
" We usually want to jump to a line+column, not just the line. | |
nnoremap ' ` | |
nnoremap ` ' | |
let mapleader = "," | |
runtime macros/matchit.vim | |
set wildmenu | |
set wildmode=list:longest | |
set scrolloff=3 | |
map <leader>c <C-_><C-_> | |
map f <Plug>(easymotion-s) | |
map <Leader>j <Plug>(easymotion-j) | |
map <Leader>k <Plug>(easymotion-k) | |
let g:EasyMotion_smartcase = 1 | |
"Now using vim-plug for plugin management: | |
"https://github.com/junegunn/vim-plug | |
"mkdir -p ~/.vim/autoload | |
"curl -fLo ~/.vim/autoload/plug.vim https://raw.github.com/junegunn/vim-plug/master/plug.vim | |
":PlugInstall | |
call plug#begin('~/.vim/plugged') | |
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } | |
if v:version < 800 | |
Plug 'vim-syntastic/Syntastic' | |
else | |
Plug 'w0rp/ale' | |
endif | |
Plug 'altercation/vim-colors-solarized' | |
Plug 'godlygeek/tabular' "https://raw.githubusercontent.com/godlygeek/tabular/master/doc/Tabular.txt | |
" Plug 'davidhalter/jedi-vim' | |
Plug 'gavinbeatty/dragvisuals.vim' | |
Plug 'tpope/vim-surround' | |
Plug 'tomtom/tcomment_vim' | |
Plug 'morhetz/gruvbox' | |
Plug 'sjl/gundo.vim' | |
Plug 'benmills/vimux' | |
"Plug 'myusuf3/numbers.vim' | |
Plug 'Lokaltog/vim-easymotion' | |
Plug 'triglav/vim-visual-increment' | |
Plug 'vim-airline/vim-airline' | |
Plug 'vim-airline/vim-airline-themes' | |
Plug 'christoomey/vim-tmux-navigator' | |
Plug 'vim-scripts/hgrev' | |
Plug 'tpope/vim-fugitive' | |
Plug 'Shougo/unite.vim' | |
Plug 'Shougo/vimproc', { 'do' : 'make' } | |
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': 'yes \| ./install' } | |
Plug 'fisadev/vim-isort', {'do' : 'pip install isort' } " Sort imports | |
Plug 'AndrewRadev/splitjoin.vim' "gS or gJ to split or join lines | |
Plug 'vim-scripts/listmaps.vim' ":Listmaps to list maps | |
Plug 'justinmk/vim-gtfo' "Opens the file manager or terminal at the directory of the current file in Vim. gof, goF | |
Plug 'christoomey/vim-tmux-navigator' | |
Plug 'airblade/vim-gitgutter' " https://vimawesome.com/plugin/vim-gitgutter | |
Plug 'morhetz/gruvbox' | |
Plug 'tpope/vim-markdown' | |
Plug 'tpope/vim-unimpaired' "[n ]n to jump between SCM errors | |
"Plug 'tmhedberg/SimpylFold' | |
Plug 'chrisbra/Recover.vim' "See a diff when recovering a file | |
Plug 'Valloric/ListToggle' "Toggle the location and quickfix lists, ,l or ,q | |
Plug 'rking/ag.vim' "Ag as a replacement for :grep | |
Plug 'airblade/vim-gitgutter' " https://vimawesome.com/plugin/vim-gitgutter | |
"Plug 'wting/gitsessions.vim' | |
Plug 'majutsushi/tagbar' " ctag outliner See http://tbaggery.com/2011/08/08/effortless-ctags-with-git.html (F8) | |
" Plug 'mattn/webapi-vim' | Plug 'mattn/gist.vim' "Create :Gist | |
Plug 'ConradIrwin/vim-bracketed-paste' " Autodetect pastes so you don't have to :set paste | |
" Source a .vimrc.local file if it exists. Allows for machine-local configuration | |
if filereadable(glob("~/.vimrc.local")) | |
source ~/.vimrc.local | |
endif | |
call plug#end() | |
au BufRead,BufNewFile *.md set filetype=markdown | |
runtime plugin/dragvisuals.vim | |
vmap <expr> <LEFT> DVB_Drag('left') | |
vmap <expr> <RIGHT> DVB_Drag('right') | |
vmap <expr> <DOWN> DVB_Drag('down') | |
vmap <expr> <UP> DVB_Drag('up') | |
vmap <expr> D DVB_Duplicate() | |
" Remove any introduced trailing whitespace after moving... ## | |
let g:DVB_TrimWS = 1 | |
set background=dark | |
" let g:solarized_visibility = "high" | |
" let g:solarized_contrast = "high" | |
let g:solarized_termcolors=256 | |
"let g:solarized_termcolors=16 | |
colorscheme gruvbox | |
let g:airline_powerline_fonts = 1 | |
set laststatus=2 | |
let g:airline_theme='gruvbox' | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:airline_section_y = 'r%{HGRev()}' | |
let g:airline#extensions#fugitive#enabled = 1 | |
set guifont="Inconsolata\ for\ Powerline" | |
if v:version < 800 | |
let g:syntastic_error_symbol = '✗' | |
let g:syntastic_warning_symbol = '!' | |
let g:airline#extensions#syntastic#enabled = 1 | |
else | |
let g:ale_sign_error = '✗' | |
let g:ale_sign_warning = '!' | |
let g:airline#extensions#ale#enabled = 1 | |
endif | |
" Gundo | |
let g:gundo_width = 25 | |
let g:gundo_preview_bottom = 1 | |
map <leader>vp :VimuxPromptCommand<CR> | |
map <leader>vl :VimuxRunLastCommand<CR> | |
map <leader>vi :VimuxInspectRunner<CR> | |
map <leader>vq :VimuxCloseRunner<CR> | |
"CtrlP functionality with Unite | |
nnoremap <C-p> :Unite file_rec/async<CR> | |
"File grepping | |
nnoremap <space>/ :Unite grep:.<CR> | |
"Search yank history | |
let g:unite_source_history_yank_enable = 1 | |
nnoremap <space>y :Unite history/yank<CR> | |
"Find buffer | |
nnoremap <space>s :Unite -quick-match buffer<CR> | |
" Tell vim to remember certain things when we exit | |
" '10 : marks will be remembered for up to 10 previously edited files | |
" "100 : will save up to 100 lines for each register | |
" :20 : up to 20 lines of command-line history will be remembered | |
" % : saves and restores the buffer list | |
" n... : where to save the viminfo files | |
set viminfo='10,\"100,:20,%,n~/.viminfo | |
" mouse mode by default, F4 to toggle | |
" This is so we've got scrolling, but can also select to copy | |
" An alternative is to option/alt-select | |
"set mouse=a | |
map <ScrollWheelUp> <C-Y> | |
map <ScrollWheelDown> <C-E> | |
function! ToggleMouse() | |
" check if mouse is enabled | |
if &mouse == 'a' | |
" disable mouse | |
set mouse= | |
else | |
" enable mouse everywhere | |
set mouse=a | |
endif | |
endfunc | |
set diffopt+=vertical | |
"Listtoggle | |
let g:lt_location_list_toggle_map = '<leader>l' | |
let g:lt_quickfix_list_toggle_map = '<leader>q' | |
"let g:lt_height = 10 | |
"Uncomment this to start with Syntastic disabled | |
"let g:syntastic_mode_map = { 'mode': 'passive' } | |
set grepprg=ag\ --nogroup\ $* | |
nnoremap <leader>F :FZF<CR> | |
nnoremap <F2> :set nonumber!<CR> | |
map <F3> :NERDTreeToggle<CR> | |
nnoremap <F4> :call ToggleMouse()<CR> | |
nnoremap <F5> :GundoToggle<CR> | |
nnoremap <F6> :Gblame<CR> | |
if v:version < 800 | |
nnoremap <F7> :SyntasticReset<CR> | |
else | |
nnoremap <F7> :AleReset<CR> | |
endif | |
nmap <F8> :TagbarToggle<CR> | |
nmap <F9> :GitGutterSignsToggle<CR> | |
nnoremap <Tab> :bnext<CR> | |
nnoremap <S-Tab> :bprevious<CR> | |
" Jump to next function, reposition to top of screen | |
map zT ]]+zt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment