Skip to content

Instantly share code, notes, and snippets.

@nestalk
Created September 29, 2016 08:32
Show Gist options
  • Save nestalk/484c8b9a60a64fa90b31c05730bcfae7 to your computer and use it in GitHub Desktop.
Save nestalk/484c8b9a60a64fa90b31c05730bcfae7 to your computer and use it in GitHub Desktop.
vim commands

Vim commands

Movement

  • k - up
  • j - down
  • h - left
  • l - right
  • gg - top of file
  • G - bottom of file
  • {num}gg - go to line num
  • w - start of next word
  • b - start of previous word
  • e - end of next word
  • ge - end of previous word
  • 0 - start of line
  • ^ - first non blank
  • $ - end of line
  • H - top of screen
  • L - bottom of screen
  • Ctrl+u - up 1/2 page
  • Ctrl+d - down 1/2 page
  • Ctrl+f - down page
  • Ctrl+b - up page
  • '' - previous position
  • % - matching bracket
  • '. - last edit
  • z - scroll to cursor in center
  • zt - scroll to cursor at top
  • zb - scroll to cursor at bottom
  • Ctrl+g - show location
  • gd - go to declaration

Move to insert mode

  • i - before cursor
  • I - Start of line
  • a - after cursor
  • A - End of line
  • o - next line
  • O - previous line
  • r - replace char
  • R - enter insert mode overwriting
  • c{motion} - delete motion and enter insert mode
  • Ctrl+a - increment number
  • Ctrl+x - decrement number
  • g?{motion} - rot13 encode text
  • g?g? - rot13 encode line

Change Case

  • ~ - switch case
  • Vu - lowercase line
  • VU - upercase line

Visual mode

  • v - visual selection
  • V - line selection
  • Ctrl+v or Ctrl+V - block selection
  • o - move cursor to other end of selection
  • gv - reselect block
  • y - yank
  • yy - copy line
  • p - paste before
  • P - Paste after

Deleting

  • x - delete under cursor
  • d{motion} - delete in the motion direction
  • D - delete to end of line
  • dd - delete line

Markers

  • :marks - list marks
  • m{letter} - create marker a-z
  • '{letter} - go to marker a-z (capital letter for another file)
  • d'{letter} - delete from cursor to marker

Folding

  • zo - open fold
  • zO - open folds recursively
  • zc - close fold
  • zC - clase folds recursivly

Searching

  • /pattern - search forward
  • ?pattern - search backward
  • n - repeat forward search
  • N - repeat backward search
  • * - find forward word under cursor
  • # - find backward word under cursor

Replacing

  • :%s/{old}/{new}/g - replace old with new in file

Multi Windows

  • :sp filename - split window and open file
  • :vsp filname - split window vertically and open file
  • :new - create new window
  • :vne - create new vertical window
  • :hide - hide window
  • :only - close other windows
  • :ls - list buffers
  • :b num - open buffer num
  • Ctrl+w Ctrl+w - cycle windows
  • Ctrl{motion} - move to window in direction

Recording

  • :reg - show all registers
  • "{register}p - paste register
  • q{register} - record to register
  • @{register} - execute register
  • @@ - repeat last register execution

Explorer

  • :e . - open file explorer
  • :Sex - split window and open explorer
  • gf - open file under cursor

Tabs

  • :tabnew - create new tab
  • gt - next tab
  • :tabn {number} - go to tab at position (one based)
  • :tab ball - put open files in tabs
  • :tabm {number} - move tab to position (zero based)
  • :tabs - list tabs
  • :tabo - close other tabs
  • :tabc - close tab

Reading files

  • :r {file} - read file and insert

Digraphs

  • :dig- show list of digraphs
  • Ctrl+k{code} - insert digraph
  • Ctrl+k{ST} - �

Hidden characters

  • :set list - show characters
  • :set nolist - hide characters

IDE Plugins

VS Code Vim IdeaVim VsVim

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment