Created
June 13, 2013 07:05
-
-
Save joshgillies/5771747 to your computer and use it in GitHub Desktop.
dat vim
This file contains hidden or 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
" Use Vim settings, rather then Vi settings (much better!). | |
" This must be first, because it changes other options as a side effect. | |
set nocompatible | |
" TODO: this may not be in the correct place. It is intended to allow | |
" overriding <Leader>. | |
" source ~/.vimrc.before if it exists. | |
if filereadable(expand("~/.vimrc.before")) | |
source ~/.vimrc.before | |
endif " ================ General Config ==================== | |
set number "Line numbers are good set backspace=indent,eol,start "Allow backspace in insert mode set history=1000 "Store lots of :cmdline history set showcmd "Show incomplete cmds down the bottom set showmode "Show current mode down the bottom set gcr=a:blinkon0 "Disable cursor blink | |
set visualbell "No sounds | |
set autoread "Reload files changed outside vim | |
" This makes vim act like all other editors, buffers can | |
" exist in the background without being in a window. | |
" http://items.sjbach.com/319/configuring-vim-right | |
set hidden | |
" Vundle setup | |
filetype off | |
set rtp+=~/.vim/bundle/vundle | |
call vundle#rc() | |
Bundle 'gmark/vundle' | |
" Custom bundles here | |
Bundle 'altercation/vim-colors-solarized' | |
Bundle 'scrooloose/syntastic' | |
Bundle 'digitaltoad/vim-jade' | |
Bundle 'kien/ctrlp.vim' | |
" Pathogen setup | |
execute pathogen#infect() | |
" turn on syntax highlighting | |
syntax enable | |
set background=dark | |
colorscheme solarized | |
" Change leader to a comma because the backslash is too far away | |
" That means all \x commands turn into ,x | |
" The mapleader has to be set before vundle starts loading all | |
" the plugins. | |
let mapleader="," | |
" =============== Vundle Initialization =============== | |
" This loads all the plugins specified in ~/.vim/vundle.vim | |
" Use Vundle plugin to manage all other plugins | |
if filereadable(expand("~/.vim/vundles.vim")) | |
source ~/.vim/vundles.vim | |
endif | |
" ================ Turn Off Swap Files ============== | |
set noswapfile | |
set nobackup | |
set nowb | |
" ================ Persistent Undo ================== | |
" Keep undo history across sessions, by storing in file. | |
" Only works all the time. | |
" silent !mkdir ~/.vim/backups > /dev/null 2>&1 | |
" set undodir=~/.vim/backups | |
" set undofile | |
" ================ Indentation ====================== | |
set autoindent | |
set smartindent | |
set smarttab | |
set shiftwidth=2 | |
set softtabstop=2 | |
set tabstop=2 | |
set expandtab | |
filetype plugin on | |
filetype indent on | |
" Display tabs and trailing spaces visually | |
set list listchars=tab:\ \ ,trail:· | |
set nowrap "Don't wrap lines | |
set linebreak "Wrap lines at convenient points | |
" ================ Folds ============================ | |
set foldmethod=indent "fold based on indent | |
set foldnestmax=3 "deepest fold is 3 levels | |
set nofoldenable "dont fold by default | |
" ================ Completion ======================= | |
set wildmode=list:longest | |
set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches | |
set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing | |
set wildignore+=*vim/backups* | |
set wildignore+=*sass-cache* | |
set wildignore+=*DS_Store* | |
set wildignore+=vendor/rails/** | |
set wildignore+=vendor/cache/** | |
set wildignore+=*.gem | |
set wildignore+=log/** | |
set wildignore+=tmp/** | |
set wildignore+=*.png,*.jpg,*.gif | |
" | |
" ================ Scrolling ======================== | |
set scrolloff=8 "Start scrolling when we're 8 lines away from margins | |
set sidescrolloff=15 | |
set sidescroll=1 | |
" ================ Window management ================ | |
" via http://www.agillo.net/simple-vim-window-management/ | |
function! WinMove(key) | |
let t:curwin = winnr() | |
exec "wincmd ".a:key | |
if (t:curwin == winnr()) "we havent moved | |
if (match(a:key,'[jk]')) "were we going up/down | |
wincmd v | |
else | |
wincmd s | |
endif | |
exec "wincmd ".a:key | |
endif | |
endfunction | |
map <leader>h :call WinMove('h')<cr> | |
map <leader>k :call WinMove('k')<cr> | |
map <leader>l :call WinMove('l')<cr> | |
map <leader>j :call WinMove('j')<cr> | |
map <leader>wc :wincmd q<cr> | |
map <leader>wr <C-W>r | |
nmap <left> :3wincmd <<cr> | |
nmap <right> :3wincmd ><cr> | |
nmap <up> :3wincmd +<cr> | |
nmap <down> :3wincmd -<cr> | |
" ================= Helpers ======================== | |
" Clears last search | |
:command C let @/="" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment