" ============================================================================== " vimrc file for niblock :: Use `:so %` to re-source after changes " ============================================================================== " ============================================================================== " General Settings " ============================================================================== set nocompatible " Be IMproved (https://goo.gl/2RiJoo) syntax on " Syntax hilighting filetype plugin indent on " Recognize filetype, indent, plugin files set t_Co=256 " Set number of colors (256) set encoding=utf-8 " Character encoding set autoread " Auto-reload files changed outside Vim set autochdir " Auto-change to local file directory set undofile " Enable persistent undo set showcmd " Shows you which commands you're typing set number " Enable line numbers set scrolloff=5 " 5 lines of scroll buffer space set autoindent " Enable auto-indentation set expandtab " Use spaces instead of tab characters set tabstop=4 " How many spaces a tab is set shiftwidth=4 " How many spaces to shift set softtabstop=4 " How many spaces to use when editing set textwidth=80 " How long a line is set winwidth=85 " Minimum width of a window set wrap " Wrap text set foldmethod=syntax " Enable folding on a syntax level set wildmenu " Enable wildmenu set wildmode:longest:full,full " Configure wildmenu set ignorecase smartcase " Search: ignore case, unless case matters set incsearch " Zoom to search results as I type set hlsearch " Hilight search results let g:netrw_liststyle=3 " Netrw Tree list style augroup ruby_settings " Settings for Ruby and Ruby-like langs autocmd! autocmd FileType ruby,eruby,yaml set sw=2 sts=2 augroup END augroup spellcheckr " Spelling, for some files... autocmd! autocmd BufNewFile,BufRead *.md,*.rdoc,*.txt,*.wiki setlocal spell augroup END " ============================================================================== " Status Line " ============================================================================== set laststatus=2 " Enable the statusline set statusline= " Initialize it set statusline+=%m%1*%r%0*%h " Modified, RO, Help flags set statusline+=%2*%{&spell?'[SPELL]':''} " Spell flag set statusline+=%#StatusLine# set statusline+=%{fugitive#statusline()} " Fugitive: Git branch set statusline+=%#Pmenu# " Color change (see :hi) set statusline+=\ %F " Full-path to current buffer set statusline+=%= " Switch to right-side set statusline+=%y\ " Filetype set statusline+=%#StatusLine# " Color change (see :hi) set statusline+=\|%4l\:%2c\| " Line and column set statusline+=%#SyntasticError# " Color change (see :hi_ set statusline+=%{SyntasticStatuslineFlag()} " Syntastic: Warnings/Errors augroup user_colors autocmd! autocmd ColorScheme * \ hi User1 term=bold cterm=bold ctermfg=167 ctermbg=239 | \ hi User2 term=bold cterm=bold ctermfg=111 ctermbg=239 augroup END " ============================================================================== " Mappings " ============================================================================== let mapleader = "," " Remap ESC in insert mode inoremap jk " Make moving up/down work on wrapped lines of text nnoremap j gj nnoremap k gk nnoremap ^ g^ nnoremap $ g$ " Toggle fold with space, if we're in a fold, otherwise just space nnoremap @=(foldlevel('.')?'za':"\") vnoremap zf " Allow saving of files as sudo when I forgot to start vim using sudo. cmap w!! w !sudo tee > /dev/null % " Remove Trailing Whitespaace nnoremap rtw :%s/\s\+$//e " Open help topic in a full new tab command! -nargs=1 -complete=help H :tabnew | :set buftype=help | :h " Show buffer list and prompt to choose one nnoremap b :ls:b " Simple mapping to dotfiles directory (f = current tab; F = new tab) nnoremap f :edit ~/.dotfiles/ nnoremap F :tabnew ~/.dotfiles/ " ============================================================================== " Plugins " ============================================================================== if filereadable(expand("~/.vimrc-plugins")) source ~/.vimrc-plugins endif