Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
dotfiles/.vimrc
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
186 lines (180 sloc)
4.94 KB
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
" Douglas Black | |
" Colors {{{ | |
syntax enable " enable syntax processing | |
colorscheme badwolf | |
set termguicolors | |
" }}} | |
" Misc {{{ | |
set backspace=indent,eol,start | |
let g:vimwiki_list = [{'path': '~/.wiki/'}] | |
set clipboard=unnamed | |
" }}} | |
" Spaces & Tabs {{{ | |
set tabstop=4 " 4 space tab | |
set expandtab " use spaces for tabs | |
set softtabstop=4 " 4 space tab | |
set shiftwidth=4 | |
set modelines=1 | |
filetype indent on | |
filetype plugin on | |
set autoindent | |
" }}} | |
" UI Layout {{{ | |
set number " show line numbers | |
set showcmd " show command in bottom bar | |
set nocursorline " highlight current line | |
set wildmenu | |
set lazyredraw | |
set showmatch " higlight matching parenthesis | |
set fillchars+=vert:┃ | |
" }}} | |
" Searching {{{ | |
set ignorecase " ignore case when searching | |
set incsearch " search as characters are entered | |
set hlsearch " highlight all matches | |
" }}} | |
" Folding {{{ | |
"=== folding === | |
set foldmethod=indent " fold based on indent level | |
set foldnestmax=10 " max 10 depth | |
set foldenable " don't fold files by default on open | |
nnoremap <space> za | |
set foldlevelstart=10 " start with fold level of 1 | |
" }}} | |
" Line Shortcuts {{{ | |
nnoremap j gj | |
nnoremap k gk | |
nnoremap gV `[v`] | |
" }}} | |
" Leader Shortcuts {{{ | |
let mapleader="," | |
nnoremap <leader>m :silent make\|redraw!\|cw<CR> | |
nnoremap <leader>h :A<CR> | |
nnoremap <leader>ev :vsp $MYVIMRC<CR> | |
nnoremap <leader>et :exec ":vsp /Users/dblack/notes/vim/" . strftime('%m-%d-%y') . ".md"<CR> | |
nnoremap <leader>ez :vsp ~/.zshrc<CR> | |
nnoremap <leader>sv :source $MYVIMRC<CR> | |
nnoremap <leader>l :call <SID>ToggleNumber()<CR> | |
nnoremap <leader><space> :noh<CR> | |
nnoremap <leader>s :mksession<CR> | |
nnoremap <leader>a :Ag | |
nnoremap <leader>c :SyntasticCheck<CR>:Errors<CR> | |
nnoremap <leader>1 :set number!<CR> | |
nnoremap <leader>d :GoDoc | |
nnoremap <leader>t :TestFile<CR> | |
nnoremap <leader>r :call <SID>RunFile()<CR> | |
nnoremap <leader>b :call <SID>BuildFile()<CR> | |
vnoremap <leader>y "+y | |
" }}} | |
" CtrlP {{{ | |
let g:ctrlp_match_window = 'bottom,order:ttb' | |
let g:ctrlp_switch_buffer = 0 | |
let g:ctrlp_working_path_mode = 0 | |
let g:ctrlp_custom_ignore = '\vbuild/|dist/|venv/|target/|\.(o|swp|pyc|egg)$' | |
" }}} | |
" Syntastic {{{ | |
let g:syntastic_python_flake8_args='--ignore=E501' | |
let g:syntastic_ignore_files = ['.java$'] | |
let g:syntastic_python_python_exec = 'python3' | |
" }}} | |
" AutoGroups {{{ | |
augroup configgroup | |
autocmd! | |
autocmd VimEnter * highlight clear SignColumn | |
autocmd BufWritePre *.php,*.py,*.js,*.txt,*.hs,*.java,*.md,*.rb :call <SID>StripTrailingWhitespaces() | |
autocmd BufEnter *.cls setlocal filetype=java | |
autocmd BufEnter *.zsh-theme setlocal filetype=zsh | |
autocmd BufEnter Makefile setlocal noexpandtab | |
autocmd BufEnter *.sh setlocal tabstop=2 | |
autocmd BufEnter *.sh setlocal shiftwidth=2 | |
autocmd BufEnter *.sh setlocal softtabstop=2 | |
autocmd BufEnter *.py setlocal tabstop=4 | |
autocmd BufEnter *.md setlocal ft=markdown | |
autocmd BufEnter *.go setlocal noexpandtab | |
autocmd BufEnter *.avsc setlocal ft=json | |
augroup END | |
" }}} | |
" Testing {{{ | |
let test#strategy = 'neovim' | |
let test#python#runner = 'nose' | |
" }}} | |
" Backups {{{ | |
set backup | |
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp | |
set backupskip=/tmp/*,/private/tmp/* | |
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp | |
set writebackup | |
" }}} | |
" Vim Plug {{{ | |
call plug#begin('~/.vim/plugged') | |
Plug 'bling/vim-airline' | |
Plug 'derekwyatt/vim-scala' | |
Plug 'elixir-editors/vim-elixir' | |
Plug 'fatih/vim-go' | |
Plug 'janko-m/vim-test' | |
Plug 'keith/swift.vim' | |
Plug 'kien/ctrlp.vim' | |
Plug 'leafgarland/typescript-vim' | |
Plug 'moll/vim-node' | |
Plug 'scrooloose/syntastic' | |
Plug 'simnalamburt/vim-mundo' | |
Plug 'tpope/vim-abolish' | |
Plug 'tpope/vim-fugitive' | |
Plug 'vim-airline/vim-airline-themes' | |
Plug 'vimwiki/vimwiki' | |
call plug#end() | |
" }}} | |
" airline {{{ | |
set laststatus=2 | |
let g:airline_theme = 'zenburn' | |
let g:airline_left_sep = '' | |
let g:airline_left_sep = '' | |
let g:airline_right_sep = '' | |
let g:airline_right_sep = '' | |
" }}} | |
" Custom Functions {{{ | |
function! <SID>ToggleNumber() | |
if(&relativenumber == 1) | |
set norelativenumber | |
set number | |
else | |
set relativenumber | |
endif | |
endfunc | |
" strips trailing whitespace at the end of files. this | |
" is called on buffer write in the autogroup above. | |
function! <SID>StripTrailingWhitespaces() | |
" save last search & cursor position | |
let _s=@/ | |
let l = line(".") | |
let c = col(".") | |
%s/\s\+$//e | |
let @/=_s | |
call cursor(l, c) | |
endfunc | |
function! <SID>CleanFile() | |
" Preparation: save last search, and cursor position. | |
let _s=@/ | |
let l = line(".") | |
let c = col(".") | |
" Do the business: | |
%!git stripspace | |
" Clean up: restore previous search history, and cursor position | |
let @/=_s | |
call cursor(l, c) | |
endfunc | |
function! <SID>RunFile() | |
let ext = expand("%:e") | |
if(ext == "go") | |
:GoRun | |
endif | |
endfunc | |
function! <SID>BuildFile() | |
let ext = expand("%:e") | |
if(ext == "go") | |
:GoBuild | |
endif | |
endfunc | |
" }}} | |
" | |
" vim:foldmethod=marker:foldlevel=0 |