Editor vi Spuštění editoru vi start editoru vi filename start editoru a otevření souboru filename vi ­r filename obnoví soubor po event. výpadku systému vi ­r filename zobrazí seznam systémem uložených souborů (r = recovery) Ukončení editoru :q ukončení editoru (q = quit) :q! ukončení bez uložení změn :x nebo ZZ ukončení s uložením souboru :w uložení souboru (w = write) :w filename uložení souboru pod jménem :wq ukončení s uložením souboru Pohyb kurzoru po obrazovce h o jeden znak doleva j o jednu řádku dolů k o jednu řádku nahoru l o jeden znak doprava w na začátek následujícího slova (w = word) b na začátek předcházejícího slova (b = back) 0 na začátek řádky $ na konec řádky H na začátek první řádky obrazovky M na začátek prostřední řádky obrazovky L na začátek poslední řádky obrazovky Ctrl­f posun o celou obrazovku vpřed (f = forward) Ctrl­b posun o celou obrazovku zpět (b = backward) Ctrl­d posun o 1/2 obrazovky vpřed, tj. dolů (d = down) Ctrl­u posun o 1/2 obrazovky zpět, tj. nahoru (u = up) Editor vi ­ strana 1 Ctrl­e posun o 1 řádku vpřed Ctrl­y posun o 1 řádku zpět 28G skok na 28. řádku souboru G skok na poslední řádku souboru 58j skok o 58 řádek dolů, tj. vpřed 34k skok o 34 řádek nahoru, tj. zpět Vkládání a změny textu v souboru i text bude vkládán od pozice kurzoru (i = insert) a text bude vkládán za pozici kurzoru (a=append) I text bude vložen před první znak aktuální řádky A text bude vkládán na konec řádky o text bude vložen za aktuální řádku (o = open) O text bude vložen před aktuální řádku R text bude přepisovat řádku od pozice kurzoru Příkazy zadávané ve vkládacím modu: Ctrl­h Backspace Enter ukončí řádku a kurzor přejde na novou řádku Příkazy zadávané v příkazovém modu: r znak přepíše znak na aktuální pozici kurzoru znakem znak (r = replace) . zopakuje předcházející příkaz od nové pozice kurzoru Dělení a spojování řádek i Enter, Esc rozdělí řádku na dvě v místě kurzoru J připojí následující řádku na konec aktuální řádky (j = join) 5J spojí 5 řádek Mazání textu v souboru x smaže znak na aktuální pozici kurzoru X smaže znak před aktuální pozicí kurzoru dd smaže aktuální řádku (d = delete) 5dd smaže 5 řádek počínaje aktuální řádkou Editor vi ­ strana 2 D smaže text od pozice kurzoru do konce řádky Mazání bloku textu pomocí značek a čísel řádek: ma označí aktuální řádku značkou a (jako značky lze používat malá písmena a až z) (m = mark) `a přemístí kurzor na začátek řádky, která byla označena značkou a d`a smaže blok od značky a do aktuální řádky :244,560d smaže řádky od 244. do 560. včetně :25,.d smaže řádky od 25. do aktuální řádky :­2,+2d smaže aktuální řádku, 2 předcházející a 2 násled. :.,$d nebo dG smaže vše od aktuální řádky do konce souboru :`a,`bd smaže blok řádek od značky a do značky b vč. Obnovení smazaných řádek: p vloží naposledy zmazaný text u zruší nechtěně vloženou řádku (řádky) Vyhledávání řetězců v souboru /string hledá následující výskyt řetězce string ?string hledá předcházející výskyt řetězce string n opakuje poslední hledání N opakuje poslední hledání v opačném směru Použití speciálních metaznaků v řetězcech: * ... opakovaný výskyt předchozího znaku ^ ... začátek řádku $ ... konec řádku . ... libovolný znak \< ... začátek slova \> ... konec slova [xyz] ... libovolný z uvedených znaků (xyz) [a­h] ... libovolný znak mezi a a b [^xyz] ...libovolný znak kromě uvedených (xyz) Význam metaznaku se ruší \ (to se týká . * [ ^ $ ~ & /\ ) Příkazy ovlivňující vyhledávání řetězců: :set ic nerozlišují se malá a velká písmena (ignorecase) :set nomagic nebere . * [ jako metaznaky Editor vi ­ strana 3 Zaměňování řetězců v souboru :s/find/replace/ na aktuální řádce nahradí první výskyt řetězce find řetězcem replace :s/find/replace/g totéž, ale pro všechny výskyty find :4,8s/find/replace/ na řádcích 4 až 8 včetně nahradí první výskyty :.,$s/find/replace/g v celém souboru nahradí všechny výskyty (místo 1,$ stačí napsat jen %) :%s/find/replace/gc zaměňování textu s potvrzováním (c = confirm) Operace s vybranými řádky: :g/string/s/find/replace/g Na řádcích obsahujících string provede záměnu find za replace :.,$g/string/d od aktuální řádky do konce souboru vymaže řádky obsahující řetězec string Další příkazy editoru vi Ctrl­r obnoví obsah obrazovky :!command provede příkaz operačního systému command u zruší poslední příkaz mazání (u = undo) U obnoví aktuální řádku do stavu před editací Editor vi ­ strana 4