Linux

Nájsť a nahradiť vo Vim / Vi

Nájsť a nahradiť vo Vim / Vi

Tento článok popisuje, ako vyhľadať a nahradiť text vo Vim / Vi.

Vim je najpopulárnejší textový editor príkazového riadku. Dodáva sa predinštalovaný v systéme macOS a vo väčšine distribúcií systému Linux. Nájsť a nahradiť text vo Vime je rýchle a ľahké.

Základné vyhľadanie a nahradenie #

Vo Vime môžete vyhľadať a nahradiť text pomocou : náhradník (: s) príkaz.

Ak chcete spúšťať príkazy vo Vime, musíte byť v normálnom režime, ktorý je pri spustení editora predvolený. Ak sa chcete vrátiť do normálneho režimu z iného režimu, stačí stlačiť kláves „Esc“.

Všeobecná forma náhradného príkazu je nasledovná:

: [rozsah] s / vzor / reťazec / [vlajky] [počet] 

Príkaz prehľadá každý riadok [rozsah] pre vzor, a nahradí ho a string. [počet] je kladné celé číslo, ktoré znásobí príkaz.

Ak nie [rozsah] a [počet] sú uvedené, nahradí sa iba vzor nájdený v aktuálnom riadku. Aktuálny riadok je riadok, kde je umiestnený kurzor.

Ak napríklad chcete vyhľadať prvý výskyt reťazca „foo“ v aktuálnom riadku a nahradiť ho výrazom „bar“, použili by ste:

: s / foo / bar / 

Ak chcete nahradiť všetky výskyty vzoru vyhľadávania v aktuálnom riadku, pridajte znak g vlajka:

: s / foo / bar / g 

Ak chcete vyhľadať a nahradiť vzor v celom súbore, použite znak percenta % ako rozsah. Tento znak označuje rozsah od prvého do posledného riadku súboru:

:% s / foo / bar / g 

Ak string časť je vynechaná, považuje sa za prázdny reťazec a zhodný vzor je odstránený. Nasledujúci príkaz odstráni všetky inštancie reťazca „foo“ v aktuálnom riadku:

: s / foo // g 

Namiesto lomítka (/), môžete použiť akýkoľvek iný nealfanumerický jednobajtový znak okrem oddeľovača. Táto možnosť je užitočná, ak máte vo vyhľadávacom vzore alebo v náhradnom reťazci znak „/“.

: s | foo | bar | 

Na potvrdenie každej zámeny použite c vlajka:

: s / foo / bar / gc 
nahraďte čiarou (y / n / a / q / l / ^ E / ^ Y)? 

Stlačte r nahradiť zápas resp l nahradiť zápas a skončiť. Stlačte n preskočiť zápas a q alebo Esc ukončiť substitúciu. The a voľba nahradí zápas a všetky zostávajúce výskyty zápasu. Na rolovanie obrazovky nadol použite CTRL + Y, a na rolovanie nahor použite CTRL + E.

Ako vyhľadávací vzor môžete použiť aj regulárne výrazy. Príkaz nižšie nahrádza všetky riadky začínajúce sa výrazom „foo“ výrazom „Vim je najlepší“:

:% s / ^ foo.* / Vim je najlepší / gc 

The ^ (vsuvka) sa zhoduje so začiatkom riadku a .* sa zhoduje s ľubovoľným počtom ľubovoľných znakov.

Citlivosť prípadu #

V predvolenom nastavení sa pri operácii vyhľadávania rozlišujú veľké a malé písmená; hľadanie výrazu „FOO“ sa nebude zhodovať s výrazom „Foo“.

Ak chcete ignorovať veľké a malé písmená pre vyhľadávací vzor, ​​použite i vlajka:

: s / Foo / bar / gi 

Ďalším spôsobom, ako vynútiť ignorovanie veľkých a malých písmen, je pripojiť sa \ c po vyhľadávacom vzore. Napríklad, / Linux \ c vykoná ignorovanie vyhľadávania veľkých a malých písmen.

Ak ste zmenili predvolené nastavenie malých a veľkých písmen a chcete vyhľadávať veľké a malé písmená, použite Ja vlajka:

: s / foo / bar / gi 

Veľké písmená \ C po vzore tiež vynúti hľadanie zhody prípadov.

Rozsah vyhľadávania #

Ak nie je zadaný žiadny rozsah, náhradný príkaz bude fungovať iba v aktuálnom riadku.

Rozsah môže byť buď jeden riadok, alebo rozsah medzi dvoma riadkami. Špecifikátory riadkov sú oddelené znakom , alebo ; znakov. Rozsah je možné určiť pomocou absolútneho čísla riadku alebo špeciálnych symbolov.

Napríklad na nahradenie všetkých výskytov výrazu „foo“ výrazom „bar“ vo všetkých riadkoch začínajúcich od riadku 3 po riadok 10 by ste použili:

: 3,10 s / foo / bar / g 

Rozsah je zahrnutý, čo znamená, že do rozsahu je zahrnutý prvý a posledný riadok.

Bodka . znak označuje aktuálny riadok a $ - znak dolára posledný riadok. Ak chcete nahradiť výraz „foo“ vo všetkých riadkoch od aktuálneho po posledný riadok, postupujte takto:

:.,$ s / foo / bar / 

Špecifikátor riadku je možné nastaviť aj pomocou symbolu „+“ alebo „-“, za ktorým nasleduje číslo, ktoré sa pripočíta alebo odčíta od čísla predchádzajúceho riadku. Ak je číslo za symbolom vynechané, použije sa predvolená hodnota 1.

Ak chcete napríklad nahradiť každé slovo „foo“ výrazom „bar“ počnúc od aktuálneho riadku a od ďalších štyroch riadkov, zadajte:

:.,+4 s / foo / bar / g 

Nahradenie celého slova #

Náhradný príkaz hľadá vzor ako reťazec, nie ako celé slovo. Ak napríklad hľadáte výraz „gnu“, pri hľadaní sa nájdu zhody, kde je výraz „gnu“ vložený do väčších slov, napríklad „cygnus“ alebo „magnum“.

Ak chcete vyhľadať celé slovo, napíšte \< Ak chcete označiť začiatok slova, zadajte vyhľadávací vzor a zadajte \> na označenie konca slova:

Napríklad na vyhľadanie slova „foo“, ktoré použijete \:

: s / \/ bar / 

Nahradiť históriu #

Vim sleduje všetky príkazy, ktoré spustíte v aktuálnej relácii. Ak chcete prehliadať históriu predchádzajúcich náhradných príkazov, zadajte : s a pomocou klávesov so šípkami hore / dole vyhľadajte predchádzajúcu náhradnú operáciu. Príkaz spustíte jednoducho stlačením Zadajte. Pred vykonaním operácie môžete príkaz tiež upraviť.

Príklady #

Riadky komentárov (pridať # pred čiarou) od 5 do 20:

: 5,20 s / ^ / # / 

Odkomentujte riadky od 5 do 20, vráťte predchádzajúce zmeny:

: 5,20s / ^ # // 

Všetky prípady „jablka“, „pomaranča“ a „manga“ nahraďte výrazom „ovocie“:

:% s / jablko \ oranžová \ mango / ovocie / g 

Odstráňte koncové medzery na konci každého riadku:

:% s / \ s \ + $ // e 

Záver #

Vyhľadávanie a nahradenie je výkonná funkcia Vimu, ktorá vám umožní rýchlo vykonávať zmeny v texte.

Ak máte akékoľvek otázky, neváhajte zanechať komentár.

Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...
Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...
Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...