Skip to content

Instantly share code, notes, and snippets.

@ctide
Created January 19, 2012 23:41

Revisions

  1. ctide created this gist Jan 19, 2012.
    158 changes: 158 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,158 @@
    set nocompatible

    set number
    set ruler
    syntax on
    " Shit i added:
    set hidden
    set history=1000
    runtime macros/matchit.vim
    set scrolloff=3
    set foldmethod=marker

    " Set encoding
    set encoding=utf-8

    " Whitespace stuff
    set nowrap
    set tabstop=4
    set shiftwidth=4
    set softtabstop=4
    set expandtab
    set list listchars=tab:\ \ ,trail:·

    " Searching
    set hlsearch
    set incsearch
    set ignorecase
    set smartcase

    " Tab completion
    set wildmenu
    set wildmode=list:longest,list:full
    set wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,vendor/gems/*,*.pyc

    " Status bar
    set laststatus=2

    " 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

    " Command-T configuration
    let g:CommandTMaxHeight=20

    " ZoomWin configuration
    map <Leader><Leader> :ZoomWin<CR>

    " CTags
    map <Leader>rt :!ctags --extra=+f -R *<CR><CR>
    map <C-\> :tnext<CR>

    " Remember last location in file
    if has("autocmd")
    au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal g'\"" | endif
    endif

    function s:setupWrapping()
    set wrap
    set wrapmargin=2
    set textwidth=72
    endfunction

    function s:setupMarkup()
    call s:setupWrapping()
    map <buffer> <Leader>p :Mm <CR>
    endfunction

    " make uses real tabs
    au FileType make set noexpandtab

    " Thorfile, Rakefile, Vagrantfile and Gemfile are Ruby
    au BufRead,BufNewFile {Gemfile,Rakefile,Vagrantfile,Thorfile,config.ru} set ft=ruby

    " md, markdown, and mk are markdown and define buffer-local preview
    au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup()

    " add json syntax highlighting
    au BufNewFile,BufRead *.json set ft=javascript

    au BufRead,BufNewFile *.txt call s:setupWrapping()

    " make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ )
    au FileType ruby set softtabstop=2 tabstop=2 shiftwidth=2
    "au FileType ejs set softtabstop=2 tabstop=2 shiftwidth=2
    au FileType html set softtabstop=2 tabstop=2 shiftwidth=2
    au FileType javascript set softtabstop=4 tabstop=4 shiftwidth=4
    au FileType css set softtabstop=2 tabstop=2 shiftwidth=2

    " allow backspacing over everything in insert mode
    set backspace=indent,eol,start

    " load the plugin and indent settings for the detected filetype
    filetype plugin indent on

    " 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>

    " Inserts the path of the currently edited file into a command
    " Command mode: Ctrl+P
    cmap <C-P> <C-R>=expand("%:p:h") . "/" <CR>

    " Unimpaired configuration
    " Bubble single lines
    nmap <C-Up> [e
    nmap <C-Down> ]e
    " Bubble multiple lines
    vmap <C-Up> [egv
    vmap <C-Down> ]egv

    " Enable syntastic syntax checking
    let g:syntastic_enable_signs=1
    let g:syntastic_quiet_warnings=1

    " gist-vim defaults
    if has("mac")
    let g:gist_clip_command = 'pbcopy'
    elseif has("unix")
    let g:gist_clip_command = 'xclip -selection clipboard'
    endif
    let g:gist_detect_filetype = 1
    let g:gist_open_browser_after_post = 1

    " Use modeline overrides
    set modeline
    set modelines=10

    " Default color scheme
    color eclipse

    " Directories for swp files
    set backupdir=~/.vim/backup
    set directory=~/.vim/backup

    " Turn off jslint errors by default
    let g:JSLintHighlightErrorLine = 0

    " MacVIM shift+arrow-keys behavior (required in .vimrc)
    let macvim_hig_shift_movement = 1

    " % to bounce from do to end etc.
    runtime! macros/matchit.vim

    " Show (partial) command in the status line
    set showcmd

    " Include user's local vim config
    if filereadable(expand("~/.vimrc.local"))
    source ~/.vimrc.local
    endif

    call pathogen#infect()