12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- OUTSIDE VIM:
- vim
- file open file
- -S [session file] open session file
- ~/.vimrc vim configuration file, set keymappings, settings etc. here
- IN VIM:
- navigation:
- hjkl/arrows move
- shift+arrows move by words and bigger line jumps
- w move to next word (beginning)
- b move to previous word (beginning)
- Ctrl-D move half page down
- Ctrl-U move half page up
- Ctrl-F page down
- Ctrl-B page up
- 0 move to the beginning of the line
- $ move to end of the line
- nG move to line n (e.g. 10G), 0 = end of file
- mx mark given line as "x"
- 'x go to line marked as "x"
- M move cursor to the middle of the view
- Ctrl-Y move view up by one line
- Ctrl-E move view down by one line
- zz center view on the current line
-
- editing:
- d delete (also copies, behaves like cut)
- dd delete current line (also copies, behaves like cut, for no copy use: "_dd)
- o add new line under
- p paste after
- P paste before
- u undo
- Ctrl-r redo
- v select (highlight) by characters
- V select (highlight) by lines
- Ctrl-v select (highlight) block (visual)
- y copy
- yy copy (yank) curent line
- > shift (indent) text right (to indent more use .)
- < shift (indent) text to left (to indent more use .)
- . repeat previous
-
- how to mass-prepend text (comment out) multiple lines:
- Ctrl-v 1. block select the lines
- Shift-i 2. prepend command - this will enter insert mode
- # 3. type what to prepend (e.g. '#', '//', ';' etc.)
- Esc 4. this will perform the prepend (takes a second)
- to uncomment use block select again and delete
- search/replace:
- /what search for what (case sensitive)
- /\cwhat case insensitive search
- :%s/x/y/g replace all "x"s with "y"s
- * find word under the cursor
- :noh unmark found results
- n jump to next found result
- N jump to previous found result
- multiple files:
- :hsplit horizontally split window (close with q:)
- :open file open file (over the current one, better to use :tabedit)
- :q quit, closes only the current file
- :qa quit all
- :q! quit without saving
- resize +n resize window height by n lones (- can also be used)
- :save file saves as file
- :tabedit file opens a file in tab
- :tabmove n move tab to position n
- :vertical resize +n resize window width by n columns (- can also be used)
- :vsplit vertically split window (close with :q)
- :wa save all open files
- :w save
- Ctrl-ww jump between split windows
- Ctrl-PageDown previous tab
- Ctrl-PageUp next tab
-
- compiling/errors:
- :cfile file load errors from file (gcc ... 2>&1 | grep "error">file.txt)
- :cn jump to next error
- :cp jump to previous error
-
- other:
- :! show terminal
- :!cmd executes "cmd" in terminal
- :mksession [file] saves current sessions
- :set syntax=lang set syntax to language (javascript, php, c, cpp, java, ...)
- Ctrl-n autocomplete
- Ctrl-Q fix vim freeze
- Ctrl-z suspend vim, temporarily go to terminal, get back by typing "fg"
|