Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- " Leader
- let mapleader = " "
- set nocompatible
- set nocp
- execute pathogen#infect()
- set backspace=2 " Backspace deletes like most programs in insert mode
- set nobackup
- set nowritebackup
- set noswapfile " http://robots.thoughtbot.com/post/18739402579/global-gitignore#comment-458413287
- set history=50
- set ruler " show the cursor position all the time
- set showcmd " display incomplete commands
- set incsearch " do incremental searching
- set laststatus=2 " Always display the status line
- set autowrite " Automatically :write before running commands
- syntax enable
- syntax on
- let g:neocomplete#enable_at_startup = 1
- " fzf
- " see: https://github.com/junegunn/fzf.vim
- set rtp+=/usr/local/opt/fzf
- set rtp+=~/.fzf
- " Disable Arrow keys in Normal mode
- noremap <up> <nop>
- noremap <down> <nop>
- noremap <left> <nop>
- noremap <right> <nop>
- nnoremap <Left> :echoe "Use h"<nop>
- nnoremap <Right> :echoe "Use l"<nop>
- nnoremap <Up> :echoe "Use k"<nop>
- nnoremap <Down> :echoe "Use j"<nop>
- " Quicker window movement
- nnoremap <C-j> <C-w>j
- nnoremap <C-k> <C-w>k
- nnoremap <C-h> <C-w>h
- nnoremap <C-l> <C-w>l
- " shift-h = beginning of line
- noremap H ^
- " shift-l = end of line
- noremap L g_
- " shift-j = down 5 lines
- noremap J 5j
- " shift-k = up 5 lines
- noremap K 5k
- " this is the best, let me tell you why
- " how annoying is that everytime you want to do something in vim
- " you have to do shift-; to get :, can't we just do ;?
- " Plus what does ; do anyways??
- " if you do have a plugin that needs ;, you can just wap the mapping
- " nnoremap : ;
- " give it a try and you will like it
- nnoremap ; :
- " file-path completion
- inoremap <c-f> <c-x><c-f>
- "Copy to OSX clipboard
- vnoremap <C-c> "*y<CR>
- " Align blocks of text and keep them selected
- vmap < <gv
- vmap > >gv
- " Toggle tcomment
- vnoremap <c-/> :TComment<cr>
- " Clears search history in buffer
- map <esc> :noh<cr>
- " Toggle NERDTree
- map <C-t> :NERDTreeToggle<CR>
- let NERDTreeShowHidden=1
- " no need to fold things in markdown all the time
- let g:vim_markdown_folding_disabled = 1
- " turn on spelling for markdown files
- autocmd BufRead,BufNewFile *.md setlocal spell complete+=kspell
- " Multi-Cursors keybindings
- " see: https://github.com/terryma/vim-multiple-cursors
- let g:multi_cursor_next_key='<C-n>'
- let g:multi_cursor_prev_key='<C-p>'
- let g:multi_cursor_skip_key='<C-x>'
- let g:multi_cursor_quit_key='<Esc>'
- " Set background and color scheme
- " See https://github.com/chrishunt/color-schemes
- set background=dark
- colorscheme base16-railscasts
- let base16colorspace=256 " Access colors present in 256 colorspace
- highlight clear SignColumn
- highlight VertSplit ctermbg=236
- highlight ColorColumn ctermbg=237
- highlight LineNr ctermbg=236 ctermfg=240
- highlight CursorLineNr ctermbg=236 ctermfg=240
- highlight CursorLine ctermbg=236
- highlight StatusLineNC ctermbg=238 ctermfg=0
- highlight StatusLine ctermbg=240 ctermfg=12
- highlight IncSearch ctermbg=3 ctermfg=1
- highlight Search ctermbg=1 ctermfg=3
- highlight Visual ctermbg=3 ctermfg=0
- highlight Pmenu ctermbg=240 ctermfg=12
- highlight PmenuSel ctermbg=3 ctermfg=1
- highlight SpellBad ctermbg=0 ctermfg=1
- " 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
- endif
- if filereadable(expand("~/.vimrc.bundles"))
- source ~/.vimrc.bundles
- endif
- " Load matchit.vim, but only if the user hasn't installed a newer version.
- if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
- runtime! macros/matchit.vim
- endif
- filetype plugin indent on
- augroup vimrcEx
- autocmd!
- " When editing a file, always jump to the last known cursor position.
- " Don't do it for commit messages, when the position is invalid, or when
- " inside an event handler (happens when dropping a file on gvim).
- autocmd BufReadPost *
- \ if &ft != 'gitcommit' && line("'\"") > 0 && line("'\"") <= line("$") |
- \ exe "normal g`\"" |
- \ endif
- " Set syntax highlighting for specific file types
- autocmd BufRead,BufNewFile Appraisals set filetype=ruby
- autocmd BufRead,BufNewFile *.md set filetype=markdown
- autocmd BufRead,BufNewFile .{jscs,jshint,eslint}rc set filetype=json
- augroup END
- " When the type of shell script is /bin/sh, assume a POSIX-compatible
- " shell for syntax highlighting purposes.
- let g:is_posix = 1
- " Softtabs, 2 spaces
- set tabstop=2
- set shiftwidth=2
- set shiftround
- set expandtab
- " Display extra whitespace
- set list listchars=tab:»·,trail:·,nbsp:·
- " Use one space, not two, after punctuation.
- set nojoinspaces
- " Use The Silver Searcher https://github.com/ggreer/the_silver_searcher
- if executable('ag')
- " Use Ag over Grep
- set grepprg=ag\ --nogroup\ --nocolor
- " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
- let g:ctrlp_user_command = 'ag -Q -l --nocolor --hidden -g "" %s'
- " ag is fast enough that CtrlP doesn't need to cache
- let g:ctrlp_use_caching = 0
- if !exists(":Ag")
- command -nargs=+ -complete=file -bar Ag silent! grep! <args>|cwindow|redraw!
- nnoremap \ :Ag<SPACE>
- endif
- endif
- " Make it obvious where 80 characters is
- set textwidth=80
- set colorcolumn=+1
- " Numbers
- set number
- set numberwidth=5
- " Tab completion
- " will insert tab at beginning of line,
- " will use completion if not at beginning
- set wildmode=list:longest,list:full
- function! InsertTabWrapper()
- let col = col('.') - 1
- if !col || getline('.')[col - 1] !~ '\k'
- return "\<tab>"
- else
- return "\<c-p>"
- endif
- endfunction
- inoremap <Tab> <c-r>=InsertTabWrapper()<cr>
- inoremap <S-Tab> <c-n>
- " Switch between the last two files
- nnoremap <leader><leader> <c-^>
- " vim-test mappings
- nnoremap <silent> <Leader>t :TestFile<CR>
- nnoremap <silent> <Leader>s :TestNearest<CR>
- nnoremap <silent> <Leader>l :TestLast<CR>
- nnoremap <silent> <Leader>a :TestSuite<CR>
- nnoremap <silent> <leader>gt :TestVisit<CR>
- " Run commands that require an interactive shell
- nnoremap <Leader>r :RunInInteractiveShell<space>
- " Treat <li> and <p> tags like the block tags they are
- let g:html_indent_tags = 'li\|p'
- " Open new split panes to right and bottom, which feels more natural
- set splitbelow
- set splitright
- " configure syntastic syntax checking to check on open as well as save
- let g:syntastic_check_on_open=1
- let g:syntastic_html_tidy_ignore_errors=[" proprietary attribute \"ng-"]
- let g:syntastic_eruby_ruby_quiet_messages =
- \ {"regex": "possibly useless use of a variable in void context"}
- " Set spellfile to location that is guaranteed to exist, can be symlinked to
- " Dropbox or kept in Git and managed outside of thoughtbot/dotfiles using rcm.
- set spellfile=$HOME/.vim-spell-en.utf-8.add
- " Autocomplete with dictionary words when spell check is on
- set complete+=kspell
- " Always use vertical diffs
- set diffopt+=vertical
- " Local config
- if filereadable($HOME . "/.vimrc.local")
- source ~/.vimrc.local
- endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement