Warning: Declaration of action_plugin_subjectindex_indexer::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php on line 15

Warning: Declaration of action_plugin_mathjax_enable::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/mathjax/action/enable.php on line 62

Warning: Declaration of action_plugin_googleanalytics::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/googleanalytics/action.php on line 40

Warning: Declaration of action_plugin_folded::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/folded/action.php on line 40

Warning: Declaration of action_plugin_hidden::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/hidden/action.php on line 28

Warning: Declaration of action_plugin_include::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/include/action.php on line 354

Warning: Declaration of action_plugin_tag::register(&$contr) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/tag/action.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 532

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 818

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/actions.php on line 656

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/actions.php on line 656

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/actions.php on line 656
======Základny====== Poznámka ve vicku: znak **''"''** uvozovka * spustit: **vi** a/nebo **vim** (**view** readonly režim) * POZOR, editor je **modální**, má režimy, "je ve stavu" * opuštení editoru: viz ukazkové EX1 příkazy v násl obrazku: ======rezimy====== VISUAL EDIT -------------- -------------------------- / \ / \ | | |backspace | | | |vim umi sipky... | |Odstavec | | | |ods ta vec. | | | | | | | | |------------>| | | | i nsert | | prompt$ vi file -->| | r eplace | | |^radek$ | O pen | | |0dalsi radek$| o pen | | | | c hange | | | k | | | | h l | | | | j |<-----ESC----| | | | | | | | | | \G____________/ \_________________________/ : | |odskok do EX V :w [file] "zapis/uloz, pripadne do jineho :x [file] "uloz a ukonci :q "ukonci editor, zepta se :q! "ukonci a neptej se :e file "nacti jiny soubor :n f1 f2 "nacti jine soubory :n "nacti dalsi soubor prompt$ ex file --> :prikazovy EX rezim (trvale) :vi"sual "jdi do VISUAL rezimu ======VISUAL MOVE====== * //kursor// blikající obdélník, aktuální pozice je jeho levá hrana * směr **vpřed**: ke konci souboru, **malé písmeno** * směr **zpět**: k začátku, **VELKÉ PÍSMENO** MOVE příkaz pouze přesunuje aktuální pozici //kursoru//, původní a nová pozice tvoří //rozsah// (//range//). * šipky (posun o znak) * **h** doleva, **j** dolů, **k** nahoru, **l** doleva * **w** word, **b** back-word, **e** end-word * **W** word, **B** back-word, **E** end-word velké slovo, vyjímka z pravidla malé/VELKé písmeno * **}** **{** skok o odstavec (oddělovač prázdný řádek) * **0** **^** začátek řádku, **$** konec řádku * **G** skok na řádek/konec souboru * **f**//char// skok na //znak// * **%** skok mezi párovými znaky (závorky) příkazu může předcházet //číslo//, např: * **3}** skok o 3 odstavce * **3w** skok o tri slova * **2l** posun o dva znaky * **1G** skok na 1řádek položení značky **m**ark: * **m**//char// kde //char// je **a-z** * **'**//char// skok na značku //char// viz **m**ark * **%%''%%** skok na poslední posizi Pohyb, rolování: * **^F** **^B** **PgDn** **PgUp**, vim7.x umí i rolovat mysi * **H**igh **M**idle **L**ow přesune kursor nahoru/doprostred/dolů ======VISUAL EDIT====== editační příkazy se získají kombinací **MOVE** a **i**nsert, **r**eplace a následujících operátorů : * **d** elete (Cut) * **y** ank (Copy), Paste je pak příkaz **p** **P** * **c** hange * **>** shift doleva * **<** shift doprava * **!** filtr přes příkaz (''popen'') Některé kombinace mají jednopísmenkovou //builtin// variantu: * **x** == **dl** vymaž znak vpravo * **X** == **dh** vymaž znak vlevo * **D** == **d$** vymaž do konce řádku * **d0** vymaz do zacatku radku * **dG** vymaz zbytek souboru * **d1G** vymaz do zacatku souboru * **d3}** vymaz nasledujicí 3 odstavce * **dw** **dW** **de** ... dá se pokračovat Totéž se dá kombinovat s **y** místo **d** * **Y** == **y$** napastuj zbytek řadku Neexistuje ale MOVE konstrukce pro označení celého řadku! toho se dosáhne jednoduše: **zdvojíme** operátor: * **dd** delete řádku * **3dd** delete 3 řádků * **yy** kopie ř * **cc** změna ř * **%%>>%%** **%%<<%%** shift radku * **!!** přefiltrování radku * **1G** + **!G** přefiltrování celého souboru (edit. bufferu) Každý výmaz/kopie (**d** **y**) se uloží do bufferu/schránky, ze kterého se vytahuje pomocí **p**ut (za kurzor) a **P**ut (před): * **ddp** **ddP** přehození řádku * **yyp** **yypppp** **yy3p** kopirování řadku * **xp** přehození znaku Poslední změna se dá opakovat pomocí **.** (tečka) * **ineco napisuESC** pak se posunuje kam je treba a pomocí **.** opakuju poslední **i**nsert * **dd** a opakovaným **.** mažu řadky Další EDIT příkazy * **I** == **^i** začni vkládat na začátku řádku * **a** == **li** insert za znakem * **A** == **$a** insert za koncem řádku * **s** == **xl** substituce * **R** == **r$** replace do konce řádku * **C** == **c$** change * **cw** oprav následující slovo * **cc** oprav řádek * **o**pen **O**pen nový řádek * **J**oin spoj řádek s následujícím/i Vyhoda **c** je v tom, že nemusíme nejdřív mazat a poté vložit něco jiného Hledání: * **/regexp** vpřed/ke konci * **?regexp** vzad/k začátku * **n** **N** najdi další výskyt Existují schránky **"a** až **"z** (zpravidla použity s **d** **y** a **p**) obsah se pamatuje při změně editovaného souboru -- lze snad přenášet mezi soubory ======EX1====== Note: příkaz se ukončí ''ENTER'' * **:x**it ulož a ukonči * **:e**dit načti jiný soubor * **:e!** znovu načti tejný soubor (zahoď změny) * **:w**rite //[soubor]// ulož * **:q**uit ukonči * **:r**ead vlož obsah souboru * **:r !**//program// vlož výstup programu * **:sh**ell odskok do //shell// -- neukončujte editor! * **!**//program arg1 arg2...// proveď jeden příkaz v shellu, neplést s operátorem **!** ve VISUAL! S výhodou lze použít znaku **%** (jméno současného souboru) **#** jméne předchozího, např.: * **w %.save** zapiš //file// do //file.save// * **:!cp % %.save** kopie pomocí ''cp'' příkazu * **:e#** vrat se k předchozímu souboru, Note: **vim** umí **^W**indow ======konfigurace====== **:set** příkazy do souboru ''$HOME/.vimrc'' a/nebo ''$HOME/.exrc'' viz [[vim#vimrc]] {{tag>:vim}}