Created
February 10, 2012 21:23
-
-
Save gotascii/1792985 to your computer and use it in GitHub Desktop.
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
let mapleader = "," | |
call pathogen#infect("~/.vim/langs") | |
call pathogen#infect() | |
"" | |
"" File types | |
"" | |
" Some file types should wrap their text | |
function! s:setupWrapping() | |
set wrap | |
set linebreak | |
set textwidth=72 | |
set nolist | |
endfunction | |
filetype plugin indent on " Turn on filetype plugins (:help filetype-plugin) | |
if has("autocmd") | |
" In Makefiles, use real tabs, not tabs expanded to spaces | |
au FileType make set noexpandtab | |
" Make sure all mardown files have the correct filetype set and setup wrapping | |
au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn,txt} setf markdown | call s:setupWrapping() | |
" Treat JSON files like JavaScript | |
au BufNewFile,BufRead *.json set ft=javascript | |
" Remember last location in file, but not for commit messages. | |
" see :help last-position-jump | |
au BufReadPost * if &filetype !~ '^git\c' && line("'\"") > 0 && line("'\"") <= line("$") | |
\| exe "normal! g`\"" | endif | |
endif | |
"" | |
"" General Mappings (Normal, Visual, Operator-pending) | |
"" | |
" use :w!! to write to a file using sudo if you forgot to 'sudo vim file' | |
" (it will prompt for sudo password when writing) | |
cmap w!! %!sudo tee > /dev/null % | |
" Toggle paste mode | |
nmap <silent> <F4> :set invpaste<CR>:set paste?<CR> | |
imap <silent> <F4> <ESC>:set invpaste<CR>:set paste?<CR> | |
" format the entire file | |
nmap <leader>fef ggVG= | |
" Next buffer | |
nmap <silent> ,. :bnext<CR> | |
" Previous buffer | |
nmap <silent> ,m :bprev<CR> | |
" upper/lower word | |
nmap <leader>u mQviwU`Q | |
nmap <leader>l mQviwu`Q | |
" upper/lower first char of word | |
nmap <leader>U mQgewvU`Q | |
nmap <leader>L mQgewvu`Q | |
" cd to the directory containing the file in the buffer | |
" nmap <silent> <leader>cd :lcd %:h<CR> | |
" Create the directory containing the file in the buffer | |
nmap <silent> <leader>md :!mkdir -p %:p:h<CR> | |
" Some helpers to edit mode | |
" http://vimcasts.org/e/14 | |
cnoremap %% <C-R>=expand('%:h').'/'<cr> | |
map <leader>ew :e %% | |
map <leader>es :sp %% | |
map <leader>ev :vsp %% | |
map <leader>et :tabe %% | |
" Swap two words | |
nmap <silent> gw :s/\(\%#\w\+\)\(\_W\+\)\(\w\+\)/\3\2\1/<CR>`' | |
" find merge conflict markers | |
nmap <silent> <leader>fc <ESC>/\v^[<=>]{7}( .*\|$)<CR> | |
" Map the arrow keys to be based on display lines, not physical lines | |
map <Down> gj | |
map <Up> gk | |
" Adjust viewports to the same size | |
map <leader>= <C-w>= | |
" Map command-[ and command-] to indenting or outdenting | |
" while keeping the original selection in visual mode | |
vmap <A-]> >gv | |
vmap <A-[> <gv | |
nmap <A-]> >> | |
nmap <A-[> << | |
omap <A-]> >> | |
omap <A-[> << | |
imap <A-]> <Esc>>>i | |
imap <A-[> <Esc><<i | |
"" | |
"" Basic Setup | |
"" | |
set nocompatible " Use vim, no vi defaults | |
set number " Show line numbers | |
set ruler " Show line and column number | |
syntax enable " Turn on syntax highlighting allowing local overrides | |
set encoding=utf-8 " Set default encoding to UTF-8 | |
"" | |
"" Whitespace | |
"" | |
set nowrap " don't wrap lines | |
set tabstop=2 " a tab is two spaces | |
set shiftwidth=2 " an autoindent (with <<) is two spaces | |
set expandtab " use spaces, not tabs | |
set list " Show invisible characters | |
set backspace=indent,eol,start " backspace through everything in insert mode | |
if exists("g:enable_mvim_shift_arrow") | |
let macvim_hig_shift_movement = 1 " mvim shift-arrow-keys | |
endif | |
" List chars | |
set listchars="" " Reset the listchars | |
set listchars=tab:\ \ " a tab should display as " ", trailing whitespace as "." | |
set listchars+=trail:. " show trailing spaces as dots | |
set listchars+=extends:> " The character to show in the last column when wrap is | |
" off and the line continues beyond the right of the screen | |
set listchars+=precedes:< " The character to show in the last column when wrap is | |
" off and the line continues beyond the right of the screen | |
"" | |
"" 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 | |
"" | |
"" Wild settings | |
"" | |
" TODO: Investigate the precise meaning of these settings | |
" set wildmode=list:longest,list:full | |
" Disable output and VCS files | |
set wildignore+=*.o,*.out,*.obj,.git,*.rbc,*.class,.svn,*.gem | |
" Disable archive files | |
set wildignore+=*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz | |
" Ignore bundler and sass cache | |
set wildignore+=*/vendor/gems/*,*/vendor/cache/*,*/.bundle/*,*/.sass-cache/* | |
" Disable temp and backup files | |
set wildignore+=*.swp,*~,._* | |
"" | |
"" Backup and swap files | |
"" | |
set backupdir=~/.vim/_backup// " where to put backup files. | |
set directory=~/.vim/_temp// " where to put swap files. | |
"" | |
"" Status line | |
"" | |
if has("statusline") && !&cp | |
set laststatus=2 " always show the status bar | |
" Without setting this, ZoomWin restores windows in a way that causes | |
" equalalways behavior to be triggered the next time CommandT is used. | |
" This is likely a bludgeon to solve some other issue, but it works | |
set noequalalways | |
" Start the status line | |
set statusline=%f\ %m\ %r | |
" Add fugitive | |
set statusline+=%{fugitive#statusline()} | |
" Finish the statusline | |
set statusline+=Line:%l/%L[%p%%] | |
set statusline+=Col:%v | |
set statusline+=Buf:#%n | |
set statusline+=[%b][0x%B] | |
endif | |
set shell=/bin/sh | |
set wildignore+=*/.git,*/vendor/**,*/log/**,*/tmp/**,*/public/**,*/coverage/* | |
let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'", '#{': '}', '|':'|' } | |
let g:AutoCloseProtectedRegions = ["Character"] | |
autocmd User Rails/**/*.erb let b:surround_{char2nr('-')} = "<% \r %>" | |
let g:surround_46 = "<% \r %>" | |
let g:surround_62 = "<%= \r %>" | |
set selection=old | |
nmap <C-y> 0"ay$ | |
vmap <C-y> v$o0"ay | |
map <C-p> "ap | |
vmap <C-d> v$o0"ad | |
map ,, <C-^> | |
" Define <C-F> to a dummy value to see if it would set <C-f> as well. | |
map <C-F> :dummy | |
if maparg("<C-f>") == ":dummy" | |
" <leader>f on systems where <C-f> == <C-F> | |
map <leader>f :Ack<space> | |
else | |
" <C-F> if we can still map <C-f> to <S-Down> | |
map <C-F> :Ack<space> | |
endif | |
map <C-f> <S-Down> | |
map <C-t> :CtrlP<CR> | |
imap <C-t> <ESC>:CtrlP<CR> | |
nmap <leader>gb :Gblame<CR> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment