# VIM memo
vim commands list vim cheat sheet
# copy and paste
ddcut the line where the cursor isppaste the text after the line where the cursor is
# How to Exit
:q[uit]Quit Vim. This fails when changes have been made.:q[uit]!Quit without writing.:cq[uit]Quit always, without writing.:wqWrite the current file and exit.:wq!Write the current file and exit always.:wq {file}Write to {file}. Exit if not editing the last:wq! {file}Write to {file} and exit always.:[range]wq[!] [file]Same as above, but only write the lines in [range].ZZWrite current file, if modified, and exit.ZQQuit current file and exit (same as ":q!").
# Editing a File
:e[dit]Edit the current file. This is useful to re-edit the current file, when it has been changed outside of Vim.:e[dit]!Edit the current file always. Discard any changes to the current buffer. This is useful if you want to start all over again.:e[dit] {file}Edit {file}.:e[dit]! {file}Edit {file} always. Discard any changes to the current buffer.gfEdit the file whose name is under or after the cursor. Mnemonic: "goto file".
# Inserting Text
aAppend text after the cursor [count] times.AAppend text at the end of the line [count] times.iInsert text before the cursor [count] times.IInsert text before the first non-blank in the line [count] times.gIInsert text in column 1 [count] times.oBegin a new line below the cursor and insert text, repeat [count] times.OBegin a new line above the cursor and insert text, repeat [count] times.
# Inserting a file
:r[ead] [name]Insert the file [name] below the cursor.:r[ead] !{cmd}Execute {cmd} and insert its standard output below the cursor.
# Deleting Text
<Del>orxDelete [count] characters under and after the cursorXDelete [count] characters before the cursord{motion}Delete text that {motion} moves overddDelete [count] linesDDelete the characters under the cursor until the end of the line{Visual}xor{Visual}dDelete the highlighted text (for {Visual} see Selecting Text).{Visual}CTRL-Hor{Visual}When in Select mode: Delete the highlighted text{Visual}Xor{Visual}DDelete the highlighted lines:[range]d[elete]Delete [range] lines (default: current line):[range]d[elete] {count}Delete {count} lines, starting with [range]