===== Vi / Vim ===== ==== Open Files, save and exit ==== $ vi file # open file :w # save (write) :wq # save and quit :x # abbreviation of wq :q! # quit without save ==== Grammar ==== === Navigation === h # cursor left j # cursor down k # cursor up l # cursor right 0 # (zero) move to beginning of the line $ # move to the end of the line w # move to the beginning of the next word } # skip to next section H # Jump to the beginning of the displayed screen M # Jump to the center of the displayed screen L # Jump to the bottommost line shown CTRL-f # Jump down one Page CTRL-b # Jump up one Page CTRL-d # Jump down halve a page CTRL-u # Jump up halve a page gj # For very long lines that wrap at the screen edge, jump up one line. gk # For very long lines that wrap at the screen edge, jump down one line. % # Jump to the next bracket character (){}[] === Edit === i # insert at cursor position a # add after cursor position o # insert a line below O # insert a line above 12i # write the same character 12 times ( type eight zero i dash results in ------------) y # yank text (copy) d # delete dt' # delete everything to the character ' df' # delete everything including character ' c # copy line y$ # copy to the end of the line (yank) y5l # yank five Characters from the cursor position to the right yt( # copy everything to the round bracket d2w # delete two words c2j # change the next two lines :undo or u :redo or CTRL-R ==== complex editing ==== === Commenting 1 === CTRL-q Cursor turns gray as soon you move the cursor keys (or hjkl). Mark everything you want comment SHIFT-i press Shift Key and i # type '#' ESC Press ESC === Commenting 2 === Add '# ' in the beginning of line 5 to 12 :5,12s/^/# / === Uncomment 1 === CTRL-q Mark everything you want to remove q press q === Uncomment 2 === remove '# ' from the beginning of line 5 to 12 :5,12s/^# // ==== Split window ==== $ vi file1.txt :split file2.txt # file2.txt is display in the same terminal window on top of file1.txt :q # close file2.txt :vsplit file2.txt # file2.txt is displayed in the same terminal window to the right of file1.txt :CTRL-w l # change to the right window :CTRL-w h # change to the left window :CTRL-w j # change to the bottom window :CTRL-w k # change to the top window ==== Line Numbers ==== :set nu # show line numbers :set nonu # hide line numbers :set ruler # show horizontal and vertical cursor position at the bottom right of the terminal :set rnu # show relative line numbers :set nornu # hide relative line numbers ==== .vimrc example file ==== set hidden set ruler set tabstop=4 set mouse=r set number (set nu) # Zeilennummern einschalten set relativenumber (set rnu) # relative Zeilennummern!!!!) set relativenumber number (set rnu nu) # beides set ruler set nocp filetype plugin on set background=dark hi Comment cterm=italic ctermfg=69 gui=italic guifg=#5d6eff hi Constant ctermfg=172 hi Function ctermfg=9