8 zajímavých tipů a triků editoru „Vi/Vim“ pro každého správce Linuxu – část 2
V předchozím článku této série jsme zhodnotili 7 tipů a triků, které můžete přidat do sady dovedností vi/m. Kromě výše uvedených důvodů je naučit se efektivně používat textový editor v Linuxu základní schopností pro správce systému nebo inženýra a je to nezbytná kompetence pro absolvování jakéhokoli hlavního certifikačního programu pro Linux (jako jsou LFCS, LFCE, RHCSA a RHCE) .
To znamená, začněme.
TIP #8: Vytvořte horizontální nebo vertikální okna
Tento tip sdílel Yoander, jeden z našich čtenářů, v části 1. Můžete spustit vi/m s několika horizontálními nebo vertikálními děleními a upravovat samostatné soubory ve stejném hlavním okně:
Spusťte vi/m se dvěma horizontálními okny s test1 nahoře a test2 dole
vim -o test1 test2
Spusťte vi/m se dvěma vertikálními okny, s test3 vlevo a test4 vpravo:
vim -O test3 test4
Kurzor můžete přepínat z jednoho okna do druhého běžným pohybem vi/m (h: vpravo, l: vlevo, j: dole, k: nahoře):
- Ctrl+w k – nahoře
- Ctrl+w j – dole
- Ctrl+w l – vlevo
- Ctrl+w h – vpravo
TIP #9: Změňte písmena, slova nebo celé řádky na VELKÁ nebo malá písmena
Upozorňujeme, že tento tip funguje pouze ve vimu. V dalších příkladech je X celé číslo.
- Chcete-li změnit řadu písmen na velká, umístěte kurzor na první písmeno, zadejte gUX v režimu ex a nakonec stiskněte na klávesnici šipku doprava.
- Chcete-li změnit X počet slov, umístěte kurzor na začátek slova a zadejte gUXw v režimu ex.
- Chcete-li změnit celý řádek na velká písmena, umístěte kurzor kamkoli na řádek a zadejte gUU v režimu ex.
Chcete-li například převést celý malý řádek na velká, měli byste umístit kurzor kamkoli na řádek a napsat gUU:
Chcete-li například převést 2 velká slova na malá, měli byste umístit kurzor na začátek prvního slova a napsat gu2w:
TIP #10: Odstraňte znaky, slova nebo na začátek řádku v režimu INSERT
Zatímco v režimu ex můžete smazat znaky nebo několik slov najednou (tj. pomocí dw smazat slovo), můžete to udělat také v režimu vkládání následovně:
- Ctrl + h: smaže předchozí znak na místo, kde se aktuálně nachází kurzor.
- Ctrl + w: smaže předchozí slovo na místo, kde se aktuálně nachází kurzor. Aby to fungovalo správně, musí být kurzor umístěn na prázdné místo za slovem, které potřebujete smazat.
- Ctrl + u: smaže aktuální řádek začínající znakem bezprostředně nalevo od místa, kde je kurzor.
TIP #11: Přesuňte nebo zkopírujte existující řádky na jiný řádek dokumentu
I když je pravda, že můžete použít dobře známé příkazy dd, yy a p v ex režimu k odstranění, vytažení (kopírování) a vložení řádků, což funguje pouze tehdy, když je kurzor umístěn tam, kde chcete tyto operace provést. . Dobrou zprávou je, že pomocí příkazů kopírovat a přesunout můžete dělat totéž bez ohledu na to, kde je aktuálně umístěn kurzor.
Jako další příklad použijeme krátkou báseň s názvem „Forever“ od Terri Nicole Tharrington. Pro začátek necháme vim zobrazit čísla řádků (:set nu v příkazovém režimu – považujte to za tip navíc). Ke zkopírování řádku 3 pod řádek 5 použijeme :3copy5 (také v příkazovém režimu):
Nyní vraťte zpět poslední změnu (Esc + u – další bonusový tip!) a napište :1move7, abyste nahradili řádek 7 řádkem 1. Všimněte si prosím, jak jsou řádky 2 až 7 posunuty nahoru a dřívější řádek 1 nyní zabírá řádek 7:
TIP #12: Počítejte shody vyplývající z hledání podle vzoru a přesuňte se od jednoho výskytu k druhému
Tento tip je založen na náhradním příkazu (tip #7 v Části 1 této série), s tou výjimkou, že nic neodstraní, protože zástupné chování je přepsáno možnost n, což má za následek počet výskytů zadaného vzoru:
Ujistěte se, že nevynecháte žádná lomítka!
:%s/pattern//gn
Například,
:%s/libero//gn
Chcete-li přejít z jednoho výskytu vzoru na další v režimu ex, stiskněte n (malé N). Chcete-li přejít na předchozí instanci, stiskněte N.
TIP #13: Přímo otevřete vi/m v určeném řádku
Ve výchozím nastavení se při spuštění vi/m kurzor nejprve umístí na poslední řádek, který byl upravován. Pokud chcete otevřít program a nechat kurzor umístit přímo na určený řádek, můžete použít následující trik:
vim filename +line_number
Otevřete například forever.txt a umístěte kurzor na řádek 6:
vim forever.txt +6
Pojďme tento příklad trochu upravit. Předpokládejme, že chceme otevřít soubor na řádku, kde se objevuje 3. výskyt vzoru:
vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)
Podívejme se blíže na to, co výše uvedený příkaz dělá:
- grep -in název_souboru vzoru – zobrazí všechny řádky ze souboru, kde se vzorek vyskytuje, s číslem řádku na začátku každého výstupního řádku.
- sed -n 3p – zobrazí 3. řádek z výstupu předchozího potrubí.
Konečně,
- cut -d: -f1 vrátí první pole předchozího kanálu s dvojtečkou (:) jako oddělovač pole.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1
Výsledek předchozího příkazu je pak předán do vi/m, aby se program otevřel na zadaném řádku.
TIP #14: Přizpůsobení prostředí vi/m
Pokud používáte vi/m k úpravě konfiguračních souborů nebo k zápisu kódu, budete chtít mít možnost zobrazit čísla řádků při prvním otevření programu a nastavit automatické odsazení tak, aby při stisknutí klávesy Enter , kurzor se automaticky umístí na správnou pozici. Kromě toho můžete chtít upravit počet bílých míst, která karta zabírá.
I když to můžete udělat pokaždé, když spustíte vi/m, je jednodušší nastavit tyto možnosti v ~/.vimrc
, aby se automaticky použily:
set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab
Další možnosti přizpůsobení prostředí vi/m naleznete v online dokumentaci vimu.
TIP #15: Získejte nápovědu/možnosti General Vim s vimtutorem
Pokud si kdykoli potřebujete oprášit své obecné vi/m dovednosti, můžete z příkazového řádku spustit vimtutor, který zobrazí plnou nápovědu vi/m, na kterou se můžete odvolávat, jak často chcete bez nutnosti spouštět webový prohlížeč a hledat, jak provést určitý úkol ve vi/m.
vimtutor
Všimněte si, že můžete procházet nebo prohledávat obsah vimtutor, jako byste procházeli běžný soubor ve vi/m.
souhrn
V této sérii dvou článků jsem sdílel několik vi/m tipů a triků, které by vám měly pomoci být efektivnější, pokud jde o úpravy textu pomocí nástrojů příkazového řádku. Jsem si jistý, že musíte mít další – takže je neváhejte sdílet se zbytkem komunity pomocí formuláře níže. Jako vždy jsou vítány i dotazy a komentáře.