Úvod
Vim a jeho starší protějšek Vi jsou široce používané textové editory. Oba jsou open source (zdarma) a jsou dostupné ve většině distribucí Linuxu a macOS.
Hledání slov nebo vzorů ve Vim/Vi je běžný úkol, který vám umožňuje snadno procházet velkými soubory.
Tento výukový program vám na praktických příkladech ukazuje, jak vyhledávat ve Vim/Vi.
Důležité :Ujistěte se, že jste v normálním režimu než začnete hledat. To umožňuje navigaci v textu při použití běžných příkazů editoru. Vi a Vim ve výchozím nastavení otevírají soubor v normálním režimu.
Chcete-li přepnout do normálního režimu, stiskněte Esc .
Základní vyhledávání ve Vim / Vi
Existují dva způsoby, jak hledat vzor čísel nebo písmen v textovém editoru Vim/Vi.
1. Vyhledejte zadaný vzor vpřed
2. Vyhledejte zadaný vzor zpět
Směr je určen ve vztahu k pozici kurzoru.
Dopředné hledání dalšího výsledku slova
Chcete-li vyhledávat vpřed , použijte příkaz:
/pattern
Nahraďte pattern
s položkami, které chcete najít.
Chcete-li například vyhledat všechny výskyty vzoru "root" , měli byste:
1. Stiskněte Esc abyste se ujistili, že Vim/Vi je v normálním režimu.
2. Zadejte příkaz:
/root
Textový editor zvýrazní první výskyt vzoru za kurzorem. Na obrázku níže můžete vidět, že výsledek je součástí slova, které obsahuje zadaný vzor. Důvodem je, že příkaz nespecifikuje hledání celých slov.
Z této pozice vyberte Enter a:
- přeskočit na další výskyt vzoru ve stejném směru pomocí
n
- přeskočit na další výskyt vzoru v opačném směru pomocí
N
Vyhledávání slova zpětně
Chcete-li hledat zpět typ:
?pattern
Nahraďte pattern
s položkami, které chcete najít.
Chcete-li například vyhledat všechny výskyty vzoru "nologin" , měli byste:
1. Stiskněte Esc abyste se ujistili, že Vim/Vi je v normálním režimu.
2. Zadejte příkaz:
?nologin
Vim/Vi zvýrazní první výskyt zadaného vzoru před kurzorem.
Stiskněte Enter pro potvrzení hledání. Potom můžete:
- přesuňte se na další výskyt vzoru ve stejném směru pomocí
n
- přeskočte na další výskyt vzoru v opačném směru pomocí
N
Vyhledávání aktuálního slova
Aktuální slovo je slovo, kde se nachází kurzor.
Místo zadávání vzoru a výzvy Vim/Vi, aby jej našel, přesuňte kurzor na slovo a dejte mu pokyn, aby našel další výskyt tohoto slova.
1. Nejprve se stisknutím Esc ujistěte, že jste v normálním režimu .
2. Poté přesuňte kurzor na požadované slovo.
3. Zde můžete:
- Vyhledejte další výskyt slova pomocí
*
- Vyhledejte předchozí výskyt slova pomocí
#
Pokaždé, když stisknete *
nebo #
kurzor se přesune na další/předchozí instanci.
Hledání celých slov
Chcete-li vyhledat celá slova, použijte příkaz:
/\<word\>
Textový editor zvýrazní pouze první celé slovo přesně tak, jak je uvedeno v příkazu.
Otevřít soubor v konkrétním slově
Vim (a Vi) umí otevřít soubory se zadaným slovem, což vám umožní přeskočit krok a přejít přímo na hledaný výraz.
Chcete-li otevřít soubor s konkrétním slovem, použijte příkaz:
vim +/word [file_name]
nebo
vi +/word [file_name]
Chcete-li například otevřít /etc/passwd soubor, kde poprvé použije výraz "root" , použijte příkaz:
vim +/root /etc/passwd
Textový editor otevře soubor a první řádek, který zobrazí, je ten, který obsahuje výraz "root" , jako na obrázku níže.
Vyhledávání bez rozlišení malých a velkých písmen
Ve výchozím nastavení Vi(m) při vyhledávání v souboru rozlišuje velká a malá písmena. Pokud například hledáte výraz /user
nezobrazuje výsledky s velkým U (tj. Uživatel ).
Existuje několik způsobů, jak změnit velikost Vim/Vi na malá a velká písmena.
- Chcete-li vyhledat zadané slovo s atributem bez rozlišení velkých a malých písmen, spusťte příkaz:
/\<word\>\c
Soubor \c
atribut nařizuje Vi(m), aby ignoroval malá a velká písmena a zobrazil všechny výsledky.
- Alternativou je nastavit Vim tak, aby ignoroval malá a velká písmena během celé relace pro všechna vyhledávání. Chcete-li to provést, spusťte příkaz:
:set ignorecase
- Konfigurační soubor lze upravit tak, aby textový editor trvale ignoroval malá a velká písmena. Otevřete soubor ~/.vimrc a přidejte řádek
:set ignorecase
.
Zvýrazněte výsledky vyhledávání
Vi(m) má užitečnou funkci, která zvýrazní výsledky hledání v souboru. Chcete-li povolit zvýraznění, zadejte v textovém editoru následující příkaz:
:set hlsearch
Chcete-li tuto funkci zakázat, spusťte:
:set !hlsearch
Historie vyhledávání
Vi(m) sleduje vyhledávací příkazy použité v relaci. Procházejte dříve používané příkazy zadáním ?
nebo /
a pomocí tlačítka nahoru a dolů klíče.