Vim

Setup

  1. 1.
    Put these files in a clean .vim directory under your ~user directory
  2. 2.
    Create symlinks to the configuration files using these commands:
    cd ~
    ln -s ~/.vim/vimrc .vimrc
    ln -s ~/.vim/gvimrc .gvimrc
  3. 3.
    Install Shell Scripts.

Plugins

  1. 1.
    ​ctrlp – fuzzy project searching
  2. 2.
    ​minibufexpl – to show buffer list at the top of the screen
  3. 3.
    ​vim-surround – wrapping text with html tags or other characters
  4. 4.
    ​commentary – commenting and uncommenting lines
  5. 5.
    ​vim-multiple-cursors – Sublime Text style multiple cursors
  6. 6.
    ​EasyGrep – Faster easier multifile text search
  7. 7.
    ​vim-airline – Configurable status bar
  8. 8.
    ​vim-gitgutter – Show git status lines in gutter
  9. 9.
    ​vim-better-whitespace – Show and remove whitespace at the end of lines
  10. 10.
    ​nerdtree – File browser
  11. 11.
    ​vim-coffee-script – Coffeescript syntax highlighting
  12. 12.
    ​vim-css3-syntax – CSS3 & SASS syntax support
  13. 13.
    ​vim-less – Syntax highlighting for Less, requires vim-css3-syntax​
  14. 14.
    ​vim-fugitive – Git wrapper, adds current branch to Airline status bar

Additional files

The html transformation commands at the bottom of the vimrc file require scripts you can find in my Scripts repository. Those scripts should be installed in your ~/Scripts/ directory on Mac.

Thanks to...

Plugins to try

  1. 1.
    ​YouCompleteMe​
  2. 2.
    ​syntastic​
  3. 3.
    ​ack.vim – Replacement for EasyGrep

Keyboard Command Reference

  • Open in Safari = \o
  • Convert to markdown (add p tags) = \md
  • Convert HTML to markdown = \ht
  • Educate quotes = \6
  • Convert html to entities = \7
  • html encode = [x decode = ]x
  • Wrap line = put cursor on line, type yss then what you want to wrap (works with HTML tags)
  • Replace surrounding character = cs[old character][new character] (example, change double to single quotes: cs"')
  • Comment selection = \
  • Comment line = \\
  • Text search in project = :Grep regexp
  • Change search options: :GrepOptions
  • Search for current word in project = \vv
  • Vertical selection = [control-v]
  • Multiple cursors = [control-n] when on a word to start a cursor at the next matching word ([control-p] to go back, [control-x] to skip)
  • Live multiline cursors = Create vertical visual selection, then press [control-n]
  • Search current directory = [control-p], select ".." to go up a directory, [F5] to refresh
  • Remove trailing whitespace = :StripWhitespace
  • Toggle NERD Tree = [control-t]
  • Full buffer NERD Tree = :Explore
  • Create new file in NERD Tree = m, then press a
  • Git commands, open in background temporarily = :Git [command], use % to pass in current file
  • Git commands, open in buffer = :Gcommit, :Gstatus, :Gdiff, :Gblame

Helpful Shell Commands

  • Put Vim in the background = [control-z]
  • Return Vim to the foreground = fg
  • Open MacVim inside the terminal = mvim -v

General Vim commands

  • Escape insert mode = Esc or [control-]]
  • Undo = u
  • Redo = [control-r]
  • Page up & page down = [control-f] & [control-b]
  • Replace word = cw
  • Switch buffers = [control-tab] go backwards by adding shift
  • Close buffer = :bd
  • Next/Prev buffer = :bn :bp
  • List buffer = :ls
  • Start new file = :e newfile.txt
  • Wrap line = put cursor in line, type yss then what you want to wrap... could be HTML
  • Insert new line = o or O for line before
  • Delete line = dd
  • Delete until end of line = D
  • Join next line with current line = J
  • Go to line = line# gg
  • Go to end of line = $
  • Go to beginning of line = 0
  • turn off auto indent = set noautoindent
  • see buffer commands = :b[tab]
  • copy line into register = "[letter]yy (More on how to use registers)
  • see all registers = :reg
  • system clipboard = "*
  • Vertical select = control+v then select your column, I to insert, d to delete, r to replace
  • Window commands = control+w s split window, control+w hjkl move windows control+w c close window, control+q to quit a window
  • Replace to end of line = c$
  • Indent line = :>>
  • Repeat last command = .
  • find = :/[text here]
  • Find next = n (previous = N)
  • Find and replace = %s/searchterm/replacementtext/c (% = whole file, c = confirm change), more info​
  • Clear search highlight = :noh
  • Text search in project = :vimgrep /regex/gj */ (then use :cw to see a list of results, more info)
  • Word complete = [control-n] or [control-p] in Insert mode
  • Change case = gu (lowercase), gU (uppercase)
  • Recording keystrokes = q[buffer key], stop recording with q, play recording with @[buffer key]
  • Help for command = :help COMMAND
  • List of commands = :command [optional command] (use for when you have command conflicts)
  • Run shell command from Vim = :![shell command]
  • Close quickfix window = :ccl
  • Enable word wrap = :set wrap (nowrap to disable)