Vim je pokročilý konzolový textový editor.
otevře soubory v rozděleném pohledu
vim -O soubor1 soubor2
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ísmenaeditace
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 dopravau
- 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ýq<a-z>
- začátek nahrávání makraq
- ukončení nahrávání makra@<a-z>
- vyvolání makramap
/ 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ý řádekCtrl+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 oknoCtrl+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ě0
/Home
- začátek řádku^
/_
- první neprázdný znak řádku$
/End
- konec řádku10|
- desátý sloupecf<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 kurzoremg]
- 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ýt a
-z
lokální a A
-Z
globální) 'a
- přesune se na řádek se značkou a`a
- přesune se na pozici značky aw
, W
- na začátek následujícího slovae
, E
- na konec tohoto slovab
, B
- na nejbližší předchozí začátek slovau 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ávorka5H
- pátý řádek od vrchu oknaM
- střed okna5L
- pátý řádek od spodku oknaCtrl + ^
- předchozí editovaný bufferzt
- odskroluje okno tak, aby byl kurzor nahořezz
- odskroluje okno tak, aby byl kurzor uprostředzb
- odskroluje okno tak, aby byl kurzor dolev
- výběr od aktuální poziceV
- výběr celých řádků od aktuálníhoat
- 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ý tagzo
- rozbalí blokzc
- sbalí blokza
- přepne sbalený/rozbalený blok]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éhoa
- 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 řádkemCtrl + 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 dolevaCtrl + 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 kurzoremJedi-vim umožňuje nejen doplňovat v Python kódu.
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íumožňuje požítí knihovny Rope ve Vimu
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
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 dokumentaci C-c f
- najde použitíC-c r r
- přejmenuje slovo pod kurzorempoužije Ctrl-Space pro doplňování s Ropevim
imap <C-Space> <M-/>
zobrazuje okno s třídami, metodami a funkcemi
instalace Fedora
su -c "yum -y install vim-taglist"
: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ů:%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 =range(11,15)
- za aktuální řádek vloží čísla 11-15 (každé na vlastní řádek)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ýPřeformátuje všechny php soubory
find . -name '*.php' -printf "echo -e \"G=gg\n:wq\n\" | vim %p\n" | sh