Spuštění:
vi soubor (soubor nemusí existovat)
Základním příkazem pro ukončení je :q. To projde pouze v případě, že jste v textu neprovedli žádné změny. Jinak skončíte s chybovým hlášením:
No write since last change (use ! to override)
Říká, že poslední změny v souboru nemáte uloženy. Vás další postup závisí na tom, zda je chcete uložit nebo ne.
Ukončení s uložením změn:
Klasický postup velí nejprve uložit změny příkazem :w a poté ukončit editor pomocí :q. Oba příkazy můžete sloučit
do jednoho společného :wq.
Jelikož je tato varianta poměrně častá, byla pro ni vytvořena ještě jedna zkratka. Pokud v normálním režimu zadáte ZZ
(dvě velká "Z"), provede se "inteligentní ukončení". Pokud byl soubor změněn, uloží se. Poté editor ukončí svou činnost.
Ukončení bez ukládání změn:
Jestliže změny nechcete uložit použijte příkaz :q!. Obdobně lze vykřičníkem přehlušit protesty i v několika dalších
situacích.
Po otevření souboru je editor nastaven v příkazovém módu. V rámci příkazového módu můžete provádět následující operace:
V rámci vkládacího režimu je možné přidávat nový text do souboru. K opuštění vkládacího režimu je potřeba stisknout
klávesu ESC.
Následující příkazy vyvolají vkládací mód:
Slouží k zadávání příkazů na příkazovém řádku. V něm se realizují nejkomplikovanější operace, jako je vyhledání a náhrada řetězce znaků, práce se soubory a podobně. Režim ex je zahájen znakem :. Bývá zvykem jména příkazů pro příkazový řádek zahajovat dvojtečkou, aby se tato skutečnost zdůraznila. Režim ex je jednorázový. Po provedení příkazu (který odešlete klávesou Enter) se editor vrátí do normálního režimu. Pokud chcete dosáhnout téhož, ale bez provedení příkazu, použijte jako obvykle [Esc].
Samozřejmě fungují i klasické kurzorové klávesy. Pro zmíněnou obludnost existují dva rozumné důvody:
Druhým nejčastějším pohybem je posun o jednu obrazovku. Ten ve vim zajistí klávesové kombinace [Ctrl-F] (směrem dolů) a [Ctrl-B] (vzhůru). V běžných implementacích můžete pro tyto pohyby používat i obvyklé klávesy [PageDown] a [PageUp]. Vi se snaží při posunu na sousední řádek udržovat kurzor ve stejném sloupci. Je-li některý řádek kratší, posune kurzor na jeho poslední znak. Pokud se následující řádek opět prodlouží, vrátí se do původního sloupce.
Téměř všechny příkazy vi lze provádět opakovaně. Pokud nejprve napíšete číslo n a po něm určitý příkaz, bude proveden n-krát.
Například pohyb o 20 znaků doleva by zajistil příkaz 20h. Opakovat lze skutečně prakticky všechno, včetně komplikovaných věcí.
Další věci pro opakování:
Pro posuny o slovo slouží následující skupina příkazů:
Veškeré likvidační operace mají jednu zajímavou vlastnost: vymazaný text se automaticky ukládá do registru, z nějž jej následně můžete vložit na jiné místo. O vložení se postará klávesa p (vkládá za aktuální pozici) nebo P (před aktuální pozici).
Příkaz k vyhledání řetězce znaků můžete ve vim zadat dvěma základními způsoby.
Je-li nastaveno :set ignorecase, vi je nebude rozlišovat. Pokud naopak použijete :set noignorecase, budou malá a velká písmena považována za odlišná (to je implicitní stav). Při nastavení :set smartcase se rozlišování malých/velkých písmen snaží chovat inteligentně. Zapíšete-li hledaný řetězec malými písmeny, hledá malá i velká. Pokud použijete nějaká velká písmena, hledá řetězec přesně v tom tvaru, ve kterém jste jej zadali.
Hledání je totiž pohyb se vším, co k němu náleží. Můžete ho proto kombinovat s modifikátory, které byly popsány v kapitole o editaci textu. Takže například d/ahoj vymaže vše od stávající pozice kurzoru až k nejbližšímu následujícímu výskytu řetězce "ahoj".
.d8888b. 888b 888 888 888 d88P Y88b 8888b 888 888 888 888 888 88888b 888 888 888 888 888Y88b 888 888 888 888 88888 888 Y88b888 888 888 888 888 888 Y88888 888 888 Y88b d88P 888 Y8888 Y88b. .d88P "Y8888P88 888 Y888 "Y88888P" 88888b. 8888b. 88888b. .d88b. 888 "88b "88b 888 "88b d88""88b 888 888 .d888888 888 888 888 888 888 888 888 888 888 888 Y88..88P 888 888 "Y888888 888 888 "Y88P"
Otevírání souborů i jejich vytváření je s nanem snadné, stačí jen napsat:
nano nazev_souboru
Nano nemá více režimů, to znamená, že můžete ihned začít psát a vkládat text. Jestliže editujete konfigurační soubor jako třeba /etc/fstab, použijte parametr -w (zakázání zalamování slov).
nano -w /etc/fstab
Je opravdu velmi důležité, abyste při otevírání konfiguračních souborů použili tento přepínač. Neučiníte-li tak, může se stát, že systém již nabootuje nebo bude mít jiné problémy.
Chcete-li uložit provedené změny, zmáčkněte [Ctrl+O]. Chcete-li editor ukončit, použijte [Ctrl+X]. Budete-li ukončovat editor s otevřeným změněným soubor, nano se Vás zeptá, zda jej budete chtít uložit. Pokud změny nechcete zachovat, jenom zmáčkněte N, pro jejich uložení Y. V tom případě budete dotázáni na jméno souboru; napište jej a zmáčkněte Enter. Pokud jste omylem potvrdili, že chcete uložit soubor, avšak rozmysleli jste si to, můžete proces při žádosti o jméno souboru přerušit stiskem [Ctrl+C].
Pro vyjmutí jedné řádky použijte [Ctrl+K] (držte CTRL a zároveň zmáčkněte k) — řádek zmizí. Pro vložení najeďte kurzorem tam, kam má text přijít, a zmáčkněte [Ctrl+U] — řádka byla vložena. Potřebujete-li přesunout celý odstavec, jednoduše pomocí [Ctrl+K] vyjměte řádek po řádce a pak je jedním [Ctrl+U] vložte na potřebné místo. Jak vidíte, celý odstavec se posunul tam, kam jste chtěli.
Hledání textu je snadné, stačí zmáčknout [Ctrl+W] (od anglického "WhereIs"), napsat hledaný řetězec a zmáčknout Enter.
Chcete-li hledat další výskyt, zmáčkněte Alt+W.
Poznámka: V nápovědě nano je klávesa Ctrl značena jako stříška (^), takže například [Ctrl+W] je zapsáno jako ^W. Klávesa Alt
je značena jako M (od "Meta"), tudíž M-W znamená Alt+W.
Standardní výstup a standardní chybový výstup (zobrazený na terminálu) lze přesměrovat jinam, nejčastěji do souboru:
ls > seznam
Vznikne soubor seznam s výpisem obsahu adresáře. Pozor, pokud už soubor seznam existuje bude
přepsán!
Zobrazení souboru provedete například příkazem cat.
Význam znaků <, >:
Pokud na konec příkazu přidáte řetězec >>název_souboru, výstup příkazu se připojí k souboru se zadaným názvem
místo toho, aby se soubor přepsal. Symbol >> se označuje jako operátor připojení výstupu.
Chcete-li například připojit soubor soubor2 k souboru soubor1, zadejte:
cat soubor2 >> soubor1
Poznámka: Jestliže soubor soubor1 neexistuje, je vytvořen.
Sloučení různých souborů do jednoho souboru se označuje jako zřetězení. Na příkazový řádek zadejte například:
cat soubor1 soubor2 soubor3 > soubor4
Vytvoří se soubor soubor4, který se skládá z obsahu souborů soubor1, soubor2 a soubor3 připojených v daném pořadí. Pozor, příkaz cat nejdříve vytvoří výstupní soubor, což je nutné vzít na vědomí v případě složitějších řetězení.
Pokud na konec příkazu přidáte řetězec < název_souboru, vstup příkazu se čte ze souboru se zadaným názvem. Symbol < se
označuje jako operátor přesměrování vstupu.
Poznámka: Vstup lze přesměrovat pouze pro ty příkazy, které standardně přebírají vstup z klávesnice.
mail tomas < dopis1
Odešle soubor dopis1 jako zprávu uživateli tomas.
Soubor /dev/null je speciální soubor. Tento soubor má jedinečnou vlastnost, že je vždy prázdný. Všechna data, která odešlete do souboru /dev/null, se zahazují. Tato vlastnost je užitečná, když spouštíte program nebo příkaz, který generuje výstup, který chcete ignorovat.
Kromě standardního vstupu a výstupu příkazy často vytvářejí jiné druhy výstupu, například chybové a stavové zprávy známé jako diagnostický výstup. Podobně jako standardní výstup se i standardní chybový výstup vypisuje na obrazovku, pokud není přesměrován.
Máte například program nazvaný mujprog, který přijímá vstup z obrazovky a za běhu generuje zprávy, které byste chtěli ignorovat. Chcete-li číst vstup ze souboru mujskript a vyřadit standardní výstup zpráv, zadejte:
mujprog < mujskript 2> /dev/null
V tomto případě používá program mujprog soubor mujskript jako vstup a veškerý standardní chybový výstup se zahodí.
Roura - pipe
Nástroj pro spojování procesů do řetězce pomocí vzájemného propojení standardních proudů tak,
že je vždy výstup je nasměrován přímo do vstupu . Jde o jednosměrnou komunikaci.
V příkladu uvedeném níže příkaz ls vypisuje obsah adresáře a less je program, který umožňuje prohlížet obsah svého vstupu po jednotlivých stránkách, vracet se a vyhledávat. Kolona příkazů v příkladu tedy umožní prohlížet celý výpis postupně, i když se nevejde na jednu obrazovku terminálu.
ls -l | less