Vim is a very efficient text editor. This reference was made for Vim 8.0.
     
  
  
    Getting started
Exiting
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      :qa | 
      Close all files | 
    
    
      :qa! | 
      Close all files, abandon changes | 
    
  
  
    
      :w | 
      Save | 
    
    
      :wq / :x | 
      Save and close file | 
    
  
  
    
      :q | 
      Close file | 
    
    
      :q! | 
      Close file, abandon changes | 
    
  
  
    
      ZZ | 
      Save and quit | 
    
    
      ZQ | 
      Quit without checking changes | 
    
  
Navigating
  
    
      h j k l | 
      Arrow keys | 
    
    
      ^u / ^d | 
      Page up/page down | 
    
  
Words
  
    
      b / w | 
      Previous/next word | 
    
    
      e / ge | 
      Previous/next end of word | 
    
  
Line
  
    
      0 (zero) | 
      Start of line | 
    
    
      ^ | 
      Start of line (after whitespace) | 
    
    
      $ | 
      End of line | 
    
  
Document
  
    
      gg | 
      First line | 
    
    
      G | 
      Last line | 
    
    
      :n | 
      Go to line n | 
    
    
      nG | 
      Go to line n | 
    
  
Editing
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      a | 
      Append | 
    
    
      i | 
      Insert | 
    
    
      o | 
      Next line | 
    
    
      O | 
      Previous line | 
    
  
  
    
      s | 
      Delete char and insert | 
    
    
      S | 
      Delete line and insert | 
    
    
      C | 
      Delete until end of line and insert | 
    
  
  
    
      r | 
      Replace one character | 
    
    
      R | 
      Enter Replace mode | 
    
  
Exiting insert mode
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      Esc / ^[ | 
      Exit insert mode | 
    
    
      ^c | 
      Exit insert mode, and abort current command | 
    
  
Clipboard
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      x | 
      Delete character | 
    
  
  
    
      dd | 
      Delete line (Cut) | 
    
    
      yy | 
      Yank line (Copy) | 
    
  
  
    
      p | 
      Paste | 
    
    
      P | 
      Paste before | 
    
  
Visual mode
  
    
      v | 
      Enter visual mode | 
    
    
      V | 
      Enter visual line mode | 
    
    
      ^v | 
      Enter visual block mode | 
    
  
In visual mode
  
    
      d / x | 
      Delete selection | 
    
    
      s | 
      Replace selection | 
    
    
      y | 
      Yank selection (Copy) | 
    
  
See Operators for other things you can do.
Operators
Usage
Operators let you operate in a range of text (defined by motion). These are preformed in normal mode.
Operators list
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      d | 
      Delete | 
    
    
      y | 
      Yank (copy) | 
    
    
      c | 
      Change (delete then insert) | 
    
  
  
    
      > | 
      Indent right | 
    
    
      < | 
      Indent left | 
    
  
  
    
      g~ | 
      Swap case | 
    
    
      gU | 
      Uppercase | 
    
    
      gu | 
      Lowercase | 
    
  
  
    
      ! | 
      Filter through external program | 
    
  
See :help operator
Examples
Combine operators with motions to use them.
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      dd | 
      (repeat the letter) Delete current line | 
    
    
      dw | 
      Delete to next word | 
    
    
      db | 
      Delete to beginning of word | 
    
    
      2dd | 
      Delete 2 lines | 
    
    
      dip | 
      Delete a text object (inside paragraph) | 
    
    
      (in visual mode) d | 
      Delete selection | 
    
  
See: :help motion.txt
Text objects
Usage
Text objects let you operate (with an operator) in or around text blocks (objects).
  
    
      v | 
      i | 
      p | 
    
    
      | Operator | 
      [i]nside or [a]round | 
      Text object | 
    
  
Text objects
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      p | 
      Paragraph | 
    
    
      w | 
      Word | 
    
    
      s | 
      Sentence | 
    
  
  
    
      [ ( { < | 
      A [], (), or {} block | 
    
    
      ' " ` | 
      A quoted string | 
    
  
  
    
      b | 
      A block [( | 
    
    
      B | 
      A block in [{ | 
    
    
      t | 
      A XML tag block | 
    
  
Examples
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      vip | 
      Select paragraph | 
    
    
      vipipipip | 
      Select more | 
    
  
  
    
      yip | 
      Yank inner paragraph | 
    
    
      yap | 
      Yank paragraph (including newline) | 
    
  
  
    
      dip | 
      Delete inner paragraph | 
    
    
      cip | 
      Change inner paragraph | 
    
  
See Operators for other things you can do.
Misc
Folds
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      zo / zO | 
      Open | 
    
    
      zc / zC | 
      Close | 
    
    
      za / zA | 
      Toggle | 
    
  
  
    
      zv | 
      Open folds for this line | 
    
  
  
    
      zM | 
      Close all | 
    
    
      zR | 
      Open all | 
    
  
  
    
      zm | 
      Fold more (foldlevel += 1) | 
    
    
      zr | 
      Fold less (foldlevel -= 1) | 
    
  
  
    
      zx | 
      Update folds | 
    
  
Uppercase ones are recursive (eg, zO is open recursively).
Navigation
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      [( [{ [< | 
      previous ( or { or < | 
    
    
      ]) | 
      next | 
    
  
  
    
      [m | 
      previous method start | 
    
    
      [M | 
      previous method end | 
    
  
Jumping
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      ^O | 
      Go back to previous location | 
    
    
      ^I | 
      Go forward | 
    
  
  
    
      gf | 
      go to file in cursor | 
    
  
Counters
  
    
      ^A | 
      increment number | 
    
    
      ^X | 
      decrement | 
    
  
Windows
  
    
      z{height}<Cr> | 
      Resize pane to {height} lines tall | 
    
  
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      :tag Classname | 
      Jump to first definition of Classname | 
    
  
  
    
      ^] | 
      Jump to definition | 
    
    
      g] | 
      See all definitions | 
    
    
      ^t | 
      Go back to last tag | 
    
    
      ^o ^i | 
      Back/forward | 
    
  
  
    
      :tselect Classname | 
      Find definitions of Classname | 
    
    
      :tjump Classname | 
      Find definitions of Classname (auto-select 1st) | 
    
  
Case
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      ~ | 
      toggle case (Case => cASE) | 
    
    
      gU | 
      uppercase | 
    
    
      gu | 
      lowercase | 
    
  
  
    
      gUU | 
      uppercase current line (also gUgU) | 
    
    
      guu | 
      lowercase current line (also gugu) | 
    
  
Do these in visual mode.
Marks
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      `^ | 
      Last position of cursor in insert mode | 
    
    
      `. | 
      Last change | 
    
    
      `` | 
      Last jump | 
    
  
  
    
      ma | 
      Mark this cursor position as a | 
    
    
      'a | 
      Jump to cursor position a | 
    
  
Misc
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      . | 
      repeat last command | 
    
    
      ]p | 
      paste under the current indentation level | 
    
  
  
    
      zz | 
      Center this line | 
    
  
Command line
  
    
      | Shortcut | 
      Description | 
    
  
  
    
      <C-r><C-w> | 
      insert current word into the command line | 
    
    
      <C-r>" | 
      paste from “ register | 
    
  
Text alignment
:center [width]
:right [width]
:left
See :help formatting
Calculator
<C-r>=128/2
Do this in insert mode.
Exiting with an error
:cq
:cquit
Works like :qa, but throws an error. Great for aborting Git commands.
Also see
  
0 Comments 这个速查表。 写评论!