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