navody:vim
Obsah
Vim
Vim je pokročilý konzolový textový editor.
- http://www.nti.tul.cz/~satrapa/docs/vim/ - český tutoriál
- http://www.root.cz/clanky/jak-si-prizpusobit-vim/ - jak si přizpůsobit vim
- http://www.cs.swarthmore.edu/help/vim/home.html - tipy pro vim
- http://tnerual.eriogerg.free.fr/vimqrc.html - pěkná tabulka zkratek
- http://vimregex.com/ - regulární výrazy Vim
- https://vimgifs.com/ - animované ukázkypoužití vimu
Spuštění
otevře soubory v rozděleném pohledu
vim -O soubor1 soubor2
Ovládání
Editace
kombinace editace s pohybem
d
- mazáníy
- kopírování do registruc
- smaže text a přepne se do vkládacího modug~
- zamění malá/velká písmena v textugu
- převede text na malá písmenagU
- převede text na velká písmena
editace
x
- smaže znakdat
- smaže obsah mezi xml tagy (včetně tagů)dd
- smaže řádekdit
- smaže obsah mezi xml tagyD
- smaže znaky do konce řádkup
- vloží registr za aktuální poziciP
- vloží registr před aktuální poziciyy
/Y
- vloží do registru aktuální řádekJ
- připojí následující řádek k aktuálnímu s mezerougJ
- připojí následující řádek k aktuálnímu bez mezeryC
- smaže vše do konce řádku a přepne se do vkládacího módus
- smaže aktuální znak a přepne se do vkládacího móduS
- smaže celý řádek a přepne se do vkládacího módur
- přepis jednoho znakuR
- přepisovací mód~
- změní velikost znaku a posune kurzor doprava
u
- vrátí poslední příkazCtrl+r
- obnoví poslední příkazU
- odvolá všechny změny provedené na naposledy změněném řádku.
- opakuje poslední editační operaci
>>
- posune odsazení řádku doprava<<
- posune odsazení řádku doleva==
- odsadí tak, aby byl řádek správně formátovaný
Makra
q<a-z>
- začátek nahrávání makraq
- ukončení nahrávání makra@<a-z>
- vyvolání makra
Mapování zkratek
map
/noremap
- rekurzivní / nerekurzivní mapování
Režimy
(nore)map
- normální, vizuálnín(nore)map
- normálnív(nore)map
- vizuální(nore)map!
- vkládání, příkazový řádeki(nore)map
- vkládáníc(nore)map
- příkazový řádek
Okna
Ctrl+w
w
- přepne do dalšího oknaCtrl+w
r
- prohodí pořadí okenCtrl+w
v
- rozdělí okno vertikálněCtrl+w
s
- rozdělí okno horizontálněCtrl+w
q
- zavře okno
Ctrl+w
+
- zvětší výšku oknaCtrl+w
-
- zmenší výšku oknaCtrl+w
>
- zvětší šířku oknaCtrl+w
<
- zmenší šířku okna:sp
/:split
- rozdělí okna horizontálně:vsp
/:vsplit
- rozdělí okna vertikálně
Pohyby
0
/Home
- začátek řádku^
/_
- první neprázdný znak řádku$
/End
- konec řádku10|
- desátý sloupec
f<znak>
- následující výskyt znakuF<znak>
- předchozí výskyt znakut<znak>
- před následující výskyt znakuT<znak>
- za předchozí výskyt znaku;
- opakuje poslední hledání na řádku,
- opakuje poslední hledání na řádku v opačném směru
*
- nalezení dalšího slova pod kuzoremg*
- nalezení slova pod kurzorem i když je součástí jiného slova#
- nalezení předchozího slova pod kurzorem
g]
- skočí na definici100go
- skočí na stý znak v souboru
'.
- přesune se na poslední editovaný řádek`.
- přesune se na poslední editovanou pozici''
- vrátí poslední skok (kurzor na začátku přechozího řádku)``
- vrátí poslední skok (kurzor na poslední pozici)
ma
- nastaví značku a na aktuální pozici (můžou býta
-z
lokální aA
-Z
globální)'a
- přesune se na řádek se značkou a`a
- přesune se na pozici značky a
w
,W
- na začátek následujícího slovae
,E
- na konec tohoto slovab
,B
- na nejbližší předchozí začátek slova
u velkých písmen považuje vim za slovo posloupnost nebílých znaků a u malých nezapočítává třeba . nebo ,
)
- začátek nejbližší následující věty(
- nejbližší předchozí začátek věty}
- za nejbližší následující konec odstavce{
- před nejbližší předcházející konec odstavce%
- odpovídající párová závorka
5H
- pátý řádek od vrchu oknaM
- střed okna5L
- pátý řádek od spodku okna
Ctrl + ^
- předchozí editovaný buffer
zt
- odskroluje okno tak, aby byl kurzor nahořezz
- odskroluje okno tak, aby byl kurzor uprostředzb
- odskroluje okno tak, aby byl kurzor dole
Režim pro výběr
v
- výběr od aktuální poziceV
- výběr celých řádků od aktuálního
Výběr xml tagů
at
- vyběr až po párový tag včetně taguit
- vyběr až po párový tag bez tagu (pouze vnitřek)o
/O
- skok na párový tag
Skládání
zo
- rozbalí blokzc
- sbalí blokza
- přepne sbalený/rozbalený blok
VimDiff
]c
- skočí na následující změnu[c
- skočí na předchozí změnudo
- použije změnu z druhého okna do aktuálníhodp
- použije změnu z aktuálního okna do druhého
Vkládací režim
Přepnutí
a
- za znak označený kurzorem (append)i
- před znak označený kurzorem (insert)A
- za poslední znak na aktuálním řádkuI
- před první neprázdný znak na aktuálním řádkuo
- nový řádek pod aktuálním řádkemO
- nový řádek nad aktuálním řádkem
Zkratky
Ctrl + p
- doplňuje z předchozích slovCtrl + n
- doplňuje z následujících slovCtrl + x Ctr + f
- doplňuje cestuCtrl + x Ctr + l
- doplňuje celé řádkyCtrl + t
- posouvá odsazení řádku dopravaCtrl + d
- posouvá odsazení řádku doleva
Zobrazení informací
Ctrl + g
- zobrazí název souboru, počet řádků a pozici v procentechg
Ctrl + g
- informace o znacích, slovech, řádcích sloupcích
[I
- zobrazí řádky, které obsahují slovo pod kurzorem
Pluginy
Jedi-vim
Jedi-vim umožňuje nejen doplňovat v Python kódu.
Zkratky
Ctrl + mezerník
- doplňování kódu\ + g
- najde přiřazení\ + d
- jde na definiciK
- ukáže Pydoc\ + r
- přejmenuje\ + n
- ukáže požití
Ropevim
umožňuje požítí knihovny Rope ve Vimu
Instalace Fedora - pip
nejdříve je třeba nainstalovat Rope a pak Ropemode a Ropevim:
yum install python-pip python-pip install ropemode python-pip install ropevim mkdir -p ~/.vim/plugin cp /usr/share/vim/plugin/ropevim.vim ~/.vim/plugin/ropevim.vim
Klávesové zkratky
M-/
- doplňování kóduM-?
- doplňování bez nabídky (první možnost)C-c g
- jde na definiciC-c d
- ukáže dokumentaciC-c f
- najde použitíC-c r r
- přejmenuje slovo pod kurzorem
Mapování
použije Ctrl-Space pro doplňování s Ropevim
imap <C-Space> <M-/>
Tag List
zobrazuje okno s třídami, metodami a funkcemi
instalace Fedora
su -c "yum -y install vim-taglist"
Příkazy ex
:perldo s/<regex>/<nahradit>/
- pro nahrazení se použijí perlovské regulární výrazy
:buffers
/:ls
/:files
- zobrazí otevřené soubory:b
/:bu
/:buf
/:buffer
- s číslem nebo jménem přepne do bufferu:e <soubor>
- otevře soubor v novém bufferu:sp <soubor>
- otevře soubor v novém bufferu a rozdělí okno
:! <příkaz>
- spustí příkaz:r <soubor>
- vloží obsah souboru:r! <příkaz>
- vloží výstup příkazu
:reg
- vypíše aktuální obsah registrů
Editace řádků
:%g/<vzorek>/d
- smaže všechny řádky, které korespondují se vzorkem:g/^$/d
- smaže prázdné řádky
:%g/^/m0
- všechny řádky v souboru budou v opačném pořadí:%j
- spojí všechny řádky do jednoho (oddělí mezerou):%j!
- spojí všechny řádky do jednoho:%s/<co>/<čím>/<volby>
- nahrazování:%s/background/&-color/g
- nahradí všechny background za background-color:%v/<vzorek>/d
- smaže všechny řádky, které nekorespondují se vzorkem:sort
- seřadí řádky:sort u
- seřadí řádky a smaže duplicitní
put
:put =range(11,15)
- za aktuální řádek vloží čísla 11-15 (každé na vlastní řádek)
set:
set: fileformat
- ukáže typ konce řádků použitých v souboru hodnoty (dos, unix, mac)set: fileencoding
- ukáže kodování, v jakém je soubor zobrazený
Speciální příklady
Přeformátuje všechny php soubory
find . -name '*.php' -printf "echo -e \"G=gg\n:wq\n\" | vim %p\n" | sh
navody/vim.txt · Poslední úprava: 2023/02/21 09:24 autor: jules