Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
executable file 301 lines (235 sloc) 7.77 KB
" setup pathogen
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
" based on
" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
set noswapfile
set nobackup
set nowritebackup
set history=50 " keep 50 lines of command line history
set ruler " show the cursor position all the time
set showcmd " display incomplete commands
set incsearch " do incremental searching
set t_Co=256
" Don't use Ex mode, use Q for formatting
map Q gq
" This is an alternative that also works in block mode, but the deleted
" text is lost and it only works for putting the current register.
"vnoremap p "_dp
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
syntax on
set hlsearch
" Switch wrap off for everything
set nowrap
" Only do this part when compiled with support for autocommands.
if has("autocmd")
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
filetype plugin indent on
set ofu=syntaxcomplete#Complete
" Set File type to 'text' for files ending in .txt
autocmd BufNewFile,BufRead *.txt setfiletype text
" Enable soft-wrapping for text files
autocmd FileType text,markdown,html,xhtml,eruby setlocal wrap linebreak nolist
" Auto-set ft and autoindent for nginx config files
autocmd BufRead,BufNewFile /usr/local/nginx/conf/* set ft=nginx autoindent
" Put these in an autocmd group, so that we can delete them easily.
augroup vimrcEx
" For all text files set 'textwidth' to 78 characters.
" autocmd FileType text setlocal textwidth=78
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
" Automatically load .vimrc source when saved
autocmd BufWritePost .vimrc source $MYVIMRC
augroup END
set autoindent " always set autoindenting on
endif " has("autocmd")
" Softtabs, 2 spaces
set tabstop=2
set shiftwidth=2
set expandtab
" Always display the status line
set laststatus=2
" set statusline="%{fugitive#statusline()}"
set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P
" \ is the leader character
let mapleader = ","
" Edit the README_FOR_APP (makes :R commands work)
map <Leader>R :e doc/README_FOR_APP<CR>
" Leader shortcuts for Rails commands
map <Leader>m :Rmodel<CR>
map <Leader>c :Rcontroller<CR>
map <Leader>v :Rview<CR>
map <Leader>u :Runittest<CR>
" map <Leader>f :Rfunctionaltest<CR>
map <Leader>tm :RTmodel<CR>
map <Leader>tc :RTcontroller<CR>
map <Leader>tv :RTview<CR>
map <Leader>tu :RTunittest<CR>
map <Leader>tf :RTfunctionaltest<CR>
map <Leader>sm :RSmodel<CR>
map <Leader>sc :RScontroller<CR>
map <Leader>sv :RSview<CR>
map <Leader>su :RSunittest<CR>
map <Leader>sf :RSfunctionaltest<CR>
" Leader shortcuts for fuf
map <Leader>ff :FufFile<CR>
map <Leader>fb :FufBuffer<CR>
" Hide search highlighting
map <Leader>h :set invhls <CR>
" Opens an edit command with the path of the currently edited file filled in
" Normal mode: <Leader>e
map <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
" Opens a tab edit command with the path of the currently edited file filled in
" Normal mode: <Leader>t
map <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
" Move lines up and down
map <C-J> :m +1 <CR>
map <C-K> :m -2 <CR>
" Inserts the path of the currently edited file into a command
" Command mode: Ctrl+P
cmap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
" Duplicate a selection
" Visual mode: D
vmap D y'>p
" Press Shift+P while in visual mode to replace the selection without
" overwriting the default register
vmap P p :call setreg('"', getreg('0')) <CR>
" For Haml
au! BufRead,BufNewFile *.haml setfiletype haml
" No Help, please
"nmap <F1> <Esc>
" Press ^F from insert mode to insert the current file name
imap <C-F> <C-R>=expand("%")<CR>
" Maps autocomplete to tab
imap <Tab> <C-X><C-]>
imap <C-L> <Space>=><Space>
" Display extra whitespace
" set list listchars=tab:»·,trail:·
" Edit routes
command! Rroutes :e config/routes.rb
command! Rschema :e db/schema.rb
" Local config
if filereadable(".vimrc.local")
source .vimrc.local
" Use Ack instead of Grep when available
if executable("ack")
set grepprg=ack\ -H\ --nogroup\ --nocolor\ --ignore-dir=tmp\ --ignore-dir=coverage
" Color scheme
set background=dark
colorscheme solarized
if !has("gui_running")
highlight Normal ctermbg=Black
endif " !has("gui_running")
" Numbers
set number
set numberwidth=5
set showmatch
set showmode
" Snippets are activated by Shift+Tab
let g:snippetsEmu_key = "<S-Tab>"
" Tab completion options
" (only complete to the longest unambiguous match, and show a menu)
set completeopt=longest,menu
set wildmode=list:longest,list:full
set complete=.,t
" case only matters with mixed case expressions
set ignorecase
set smartcase
" Tags
let g:Tlist_Use_Right_Window=1
let g:Tlist_Ctags_Cmd="/usr/local/bin/ctags"
set tags=./.git/ctags,./tags;
set notr
let g:fuf_splitPathMatching=1
" Open URL
command -bar -nargs=1 OpenURL :!open <args>
function! OpenURL()
let s:uri = matchstr(getline("."), '[a-z]*:\/\/[^ >,;:]*')
echo s:uri
if s:uri != ""
exec "!open \"" . s:uri . "\""
echo "No URI found in line."
map <Leader>w :call OpenURL()<CR>
" macvim-specifics
if has("gui_macvim")
set transparency=2
set guioptions=aAce
highlight StatusLine guifg=Orange
map <D-1> :tabn 1<CR>
map <D-2> :tabn 2<CR>
map <D-3> :tabn 3<CR>
map <D-4> :tabn 4<CR>
map <D-5> :tabn 5<CR>
map <D-6> :tabn 6<CR>
map <D-7> :tabn 7<CR>
map <D-8> :tabn 8<CR>
map <D-9> :tabn 9<CR>
map <D-M-Right> :tabnext<CR>
map <D-M-Left> :tabprevious<CR>
set fuopt+=maxhorz " expand to the full screen width when entering fullscreen mode
endif "has("gui_macvim")
" map Ctrl-b to php syntax checker
map <C-B> :w !php -l<CR>
" map arrows to move between buffers
map <Up> :wincmd k<CR>
map <Down> :wincmd j<CR>
map <Right> :wincmd l<CR>
map <Left> :wincmd h<CR>
map <Leader>= :wincmd =<CR>
set fillchars+=vert:\
" NERDTree settings
let g:NERDTreeShowHidden=1
let g:NERDTreeWinPos = "right"
map <Leader>y :NERDTreeFind<CR>
map <Leader>n :NERDTree<CR>
" fugitive.vim
autocmd BufReadPost fugitive://* set bufhidden=delete " when opening a new fugitive buffer, close the old one
" gist.vim
let g:gist_clip_command = 'pbcopy'
let g:gist_detect_filetype = 1
let g:gist_open_browser_after_post = 1
let g:gist_show_privates = 1
" Markdown
autocmd BufNewFile,BufReadPost *.md set filetype=markdown
command! Markdown :!bluecloth % > %:t:r.html
map <Leader>dc :Markdown<CR>
" ActionScript
autocmd BufNewFile,BufReadPost *.as set filetype=actionscript
map <Leader>ac :!mxmlc %<CR>
" Numbers.vim
nnoremap <F3> :NumbersToggle<CR>
" vim ruby refactor
nnoremap <leader>rap :RAddParameter<cr>
nnoremap <leader>rcpc :RConvertPostConditional<cr>
nnoremap <leader>rel :RExtractLet<cr>
vnoremap <leader>rec :RExtractConstant<cr>
vnoremap <leader>relv :RExtractLocalVariable<cr>
nnoremap <leader>rit :RInlineTemp<cr>
vnoremap <leader>rrlv :RRenameLocalVariable<cr>
vnoremap <leader>rriv :RRenameInstanceVariable<cr>
vnoremap <leader>rem :RExtractMethod<cr>
python from powerline.vim import setup as powerline_setup
python powerline_setup()
python del powerline_setup
Something went wrong with that request. Please try again.