Hledani

Prikaz k vyhledani retezce znaku muzete ve vim zadat dvema zakladnimi zpusoby. Klavesa / zahaji hledani smerem vpred (ke konci souboru), zatimco ? pozaduje hledani v protismeru (k zacatku textu). Oba prikazy se zamozrejme zadavaji v normalnim rezimu.

Jakmile stisknete / ci ?, ocitne se kurzor ve stavovem radku, do jehoz prvni pozice vepise vami zadany prikaz, abyste vedeli, na cem jste. Pripiste za nej hledany retezec a zahajte hledani klavesou [Enter]. Kurzor pristane na prvnim znaku nejblizsiho vyskytu hledaneho retezce v danem smeru.

Jestlize text pozadovany retezec neobsahuje, ohlasi editor

Pattern not found
a kurzor ponecha na puvodni pozici. Specialnim pripadem je, kdyz text sice hledany retezec obsahuje, ne vsak v pozadovanem smeru. Rekneme, ze hledate smerem vpred, ale od aktualni pozice do konce souboru se retezec nevyskytuuje. Zato je k nalezeni v textu pred kurzorem. Chovani vim v tomto pripade zavisi na nastaveni promenne wrapscan. Pokud je zapnuta (implicitne je, lze nastavit prikazem :set wrapscan), editor bude po dosazeni konce souboru pokracovat v hledani od jeho zacatku. Najde-li jej, presune kurzor obvyklym zpusobem na jeho zacatek a doprovodi svuj cin hlasenim
Search hit BOTTOM, continuing at TOP

Zda editor ma ci nema rozlisovat mala a velka pismena ridi promenna ignorecase. Je-li nastaveno :set ignorecase, vim je nebude rozlisovat. Pokud naopak pouzijete :set noignorecase, budou mala a velka pismena povazovana za odlisna (to je implicitni stav).

Hlavni kouzlo vyhledavani spociva v tom, ze pro specifikaci hledaneho textu mate k dispozici velmi silne prostredky. Jedna se o tak zvane regularni vyrazy. Jejich problematika je vsak ponekud obsahla, takze jsem jim venoval samostatnou kapitolu.

Opakovani

Chcete-li zopakovat hledani stejneho retezce, staci zadat /[Enter]. Jestlize totiz vynechate hledany retezec, pouzije se automaticky ten predchozi. Totez samozrejme plati pro prikaz ?.

Aby vec byla jeste rychlejsi, jsou pro opakovane hledani pripraveny dva specialni prikazy. n presne opakuje posledni hledani, zatimco N hleda tentyz retezec, avsak v opacnem smeru, nez posledni pouzite hledani. Pokud tedy prejedete nejvhodnejsi vyskyt, muzete se pomoci N snadno a rychle vratit.

Vsimnete si, ze dvojice klaves /, ? a n, N delaji totez, avsak v opacnych smerech. Pritom druhou klavesu ve dvojici dostanete z prvni pouhym stisknutim [Shift] (v pripade / a ? mluvim o puvodni americke klavesnici). Tato logika, kdy [Shift] obraci smer prikazu, je ve vim pomerne casta. Setkali jsme se s ni napriklad pri vyhledavani znaku na radku (f hleda vpred, F vzad).

Strhujici zaver

Na zaver jsem si nechal opravdovou lahudku. Hledani je totiz pohyb se vsim, co k nemu nalezi. Muzete je proto kombinovat s modifikatory, ktere jsem popsal v kapitole o editaci textu. Takze napriklad d/ahoj vymaze vse od stavajici pozice kurzoru az k nejblizsimu nasledujicimu vyskytu retezce "ahoj". Zatim jsem nevidel editor, ktery by umoznoval neco podobneho tak jednoduse.
<-- predchozi  [obsah]  dalsi -->
© 1997, 1998 Pavel Satrapa