Skip to content
- Vi / Vim
- gEdit
- Nano
- gVim
- Eclipse
- Emacs
Vi / Vim
- 2 Modes
- Command Mode – (Default) Talk to the editor. For instant command use “:”
- Insert Mode – i > hit escape to get out of insert mode
- Move the cursor
- j or <Return> – move cursor down one line
- k [or up-arrow] – move cursor up one line
- h or <Backspace> [or left-arrow] – move cursor left one character
- l or <Space> [or right-arrow] – move cursor right one character
- 0 (zero) – move cursor to start of current line (the one with the cursor)
- ^ – move cursor to the beginning of the line
- $ – move cursor to end of current line
- w – move cursor to beginning of next word
- b – move cursor back to beginning of preceding word
- { – move cursor to beginning of paragraph
- } – move cursor to the end of paragraph
- :0<Return> or 1G – move cursor to first line in file
- :n<Return> or nG – move cursor to line n (where n is a number)
- :$<Return> or G – move cursor to last line in file
- “:set number” – turns on line numbers
- “:set nonumber” – turns off line numbers
- Find
- strings are case sensitive
- /string – search forward for occurrence of string in text
- ?string – search backward for occurrence of string in text
- /^string – search forward where the string is the first part of a line
- /string$ – search forward where the string is the last part of a line
- :s/oldstring/newstring – search current line and replace oldstring with newstring
- :%s/oldstring/newstring/g – search entire document and replace old string with new string
- :s/\<oldword\>/newword – search current line and replace old word with new word
- :%s/\<oldword\>/newword/g – search entire document and replace old word with new word
- /c or /gc – add for confirmation/global confirmation
- :m, ns/oldstring/newstring – search lines m through n and replace old string with new string
- n – move to next occurrence of search string
- N – move to next occurrence of search string in opposite direction
- Exit Vi
- :x<Return> – quit vi, writing out modified file to file named in original invocation
- :wq<Return> – quit vi, writing out modified file to file named in original invocation
- :q<Return> – quit (or exit) vi
- :q!<Return> – quit vi even though latest changes have not been saved for this vi call
Adding, Changing, and Deleting Text
- u – UNDO WHATEVER YOU JUST DID
- Inserting or Adding Text
- i – insert text before cursor, until <Esc> hit
- I – insert text at beginning of current line, until <Esc> hit
- a – append text after cursor, until <Esc> hit
- A – append text to end of current line, until <Esc> hit
- o – open and put text in a new line below current line, until <Esc> hit
- O – open and put text in a new line above current line, until <Esc> hit
- Changing Text
- r – replace single character under cursor (no <Esc> needed)
- R – replace characters, starting with current cursor position, until <Esc> hit
- cw – change the current word with new text, starting with the character under cursor, until <Esc> hit
- cNw – change N words beginning with character under cursor, until <Esc> hit; e.g., c5w changes 5 words
- C – change (replace) the characters in the current line, until <Esc> hit
- cc – change (replace) the entire current line, stopping when <Esc> is hit
- Ncc or cNc – change (replace) the next N lines, starting with the current line, stopping when <Esc> is hit
- Deleting Text
- x – delete single character under cursor
- Nx – delete N characters, starting with character under cursor
- dw – delete the single word beginning with character under cursor
- dNw – delete N words beginning with character under cursor; e.g., d5w deletes 5 words
- D – delete the remainder of the line, starting with current cursor position
- dd – delete entire current line
- Ndd or dNd – delete N lines, beginning with the current line; e.g., 5dd deletes 5 lines
- Cutting and Pasting Text
- yy – copy (yank, cut) the current line into the buffer
- Nyy or yNy – copy (yank, cut) the next N lines, including the current line, into the buffer
- p – put (paste) the line(s) in the buffer into the text after the current line
- P – put (paste) the line(s) in the buffer into the text before the current line