www.neotek.ch

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

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 <character>   # write the same character 12 times  ( type eight zero i dash <ESC> 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
computer/software/cheatsheets/vim.txt · Last modified: 2026/09/06 17:43 by neotek