2008-10-10

VIM

VIM

/usr/share/vim/vim63/colors color schema files
:color [col] #change color schema
shift + v #check block by row
ctrl + v #check block
y #copy block to buffer
d #cut block to buffer
p #paste block
> #move block right
< #move block left

Basic commands

a | i #edit mode
ESC #back to command mode

Command mode

:r [file] #open file
:w #write file
:q #quit
:wq lub zz #write and quit
:set mouse=a #use mouse
^u-------------- one page up
--------k------- one row up
0----h---l-----$ row begin,one char left,one char right,end row
--------j------- one row down
^d-------------- one down
1G #firs row of file
crt G #last row of file
nG #go to line nr n

Edit text

o #go to edit mode below
O #go to edit mode above
x #delete char below cursor
dw #delete from cursor to end of word
dd #delete row
D #delete from cursor to end of row
nx #delete n char from cursor to right
ndd #delete n rows
dG #delete from cursor to end of file
d1G #delete from cursor to begin of file
d$ #delete from cursor to end of row
dn$ #delete from cursor to n row
u #undo
U #undo from changes of current line
:e! #przywołanie stanu sprzed poprzedniego zapisu do pliku.
rc #zastępuje znak pod kursorem na znak c.
R #tryb edycji z nadpisywaniem.
:e ++enc=[encoding] #zmiana kodowania w trybie edycji
:w ++enc=latin2 [nowy_plik] #zmiana kodowania i zapis do pliku

Kopiowanie i przenoszenie tekstu

yy lub Y #kopiowanie linii do bufora.
nyy lub nY #kopiowanie n linii do bufora.
yw #kopiowanie słowa do bufora.
nyw #kopiowanie n słów do bufora.
y$ #kopiowanie do bufora od kursora do końca linii.
"ayy lub aY #kopiowanie linii do bufora o nazwie a.
"byw #kopiowanie słowa do bufora o nazwie b.
"bynw #kopiowanie n wyrazów do bufora o nazwie b.
:1,5w [buf] #kopiowanie lini od 1 do 5 do zbioru o nazwie buf
:e [buf] #załadowanie zbioru buf do bufora
p #wklejenie zawartości bufora (bez nazwy) na prawo od kursora.
np jak wyżej ale n razy.
P #wklejenie zawartości bufora (bez nazwy) na lewo od kursora.
"ap #wklejenie zawartości bufora o nazwie a po prawej stronie od kursora.
"bnP #n kopii po lewej stronie od kursora z bufora o nazwie b.

Szukanie w tekście i zastępowanie

fc #znajduje następny znak c i ustawia kursor po prawej.
Fc #znajduje następny znak c i ustawia kursor po lewej.
/str #szuka ciągu znaków str od kursora w prawo i do końca tekstu.
?str #jak wyżej ale w lewo i do początku tekstu.

Ustawienia:

:retab #zmiana tab na space
:set list|nolist #ukryte znaki
:set hlsearch|nohlsearch #wyłączenie podświetlania znalezionego ciągu
:set number|nonumber #numerowanie wierszy
:syntax on|off #podświetlanie składni
:set wrap #zawijanie wierszy
:set ic #wyszukiwanie ignore case
:set mouse=a #włączenie myszy
:set noet ts=[nr] sw=[nr] #rozmiar przesunięcia po wciścięciu ts-tabspace lub sw-shiftwidth,przesunięciu>
:set expandtab #zamiana tab na space
:set incsearch #wyszukiewanie już podczas wpisywania
:set showmode #pokazywanie trybu
:set showcmd #pokazywanie poleceń1G
:map #sprawdzenie mapowania klawiszy
ctrl+p #w trybie wprowadzanie dopełnianie składni
:set autoindent #tworzenie wcięcia przy nowej lini
:set smartindent #tworzenie inteligentnych wcięć
:set foldmethod=indent #chowanie tekstu na podstawie wcięć, zo-otwieranie,zc-zamykanie
:set paste #tryb do wklejania

Okna:

:split [file] #otwarcie file w nowym oknie
:vsp [file] #j.w
ctrl+w #przechodzenie między oknami
ctrl+w + #zwiększenie okna
ctrl+w - #zmniejszenie okna
ctrl+s #duplikat okna
ctrl+v #j.w.
ctrl+c #zamknięcie bieżącego okna
ctrl+o #zamknięcie pozostałych okien
ctrl+p #przejście do poprzedniego okna

Przykłady:

:map #2 :w - przypisuje klawiszowi F2 funkcję zapisywania
:1,5 s/word1/word2 #zmiana w liniach od 1 do 5 ciągu word1 na word2
:2,$norm i* #wstaw * na pocztku od lini 2 do ostatniej
:%norm A6 #wstaw 6 na końcu każdej lini
:$norm 6o #dodaj 6 pustych lini
:%norm Rwyraz #nadpisz pierwsze znaki każdej lini slowem wyraz
:% s/"//g #wywalenie cudzysłowia w całej lini - g, dla wszystkich wierszy - %
:g/^#/d #usuwanie wszystkich lini z komentarzem strona z przykładami