Általában a szövegszerkesztésnél a legtöbb esetben a szöveg írása ami eszünkbe jut. Most az ellenkező feladatat a szöveg törlését vizsgáljuk meg. Az NVim, illetve a Vi, Vim alatt. A kettő ebből a szempontból nem különbözik, plusz sok ismeret a Ranger és hasonló fájlkezelőkben is hasznos lehet. Bár sokan nem tartják túl érdekes feladatnak a szövegekből való törlést, de a hatékony munkához ez is hozzátartozik.
Én a konfigurációk szerkesztéséhez az NVim-et használom, így sokszor kell a törlést használni.
Jegyzetelj! Egy ilyen cikk elolvasása nem sokat ér, ha nem gyakoroljuk be azokat a műveleteket, miket kell.
Bár minden újra előkereshető az interneten, de nem túl hatékony, ha egy műveletet több ideig keresgélünk, int ameddig tart az elvégzése. Majd el is felejtjük…
Ez az útmutató minden részletet lefed a sorok, blokkok törlésének módjáról a vi vagy a vim, NVim szerkesztőben.
Legalábbis amiket én meg akarok tanulni. De nem térek ki egy karakter törlésére, mert az alapvető:
- A kurzor előtti karakter: backspace vagy X (logikusan normál módban)
- A kurzor utáni: Del vagy x (logikusan normál módban)
Általánosságban is igaz, hogy a normál módban használjuk ezeket a parancsokat. Ha szerkesztő módban vagy, akkor az Esc lenyomásával kerülsz vissza a normál módba.
Az aktuális sor törlése
Aktuális sor törlése: dd vagy D
Fontos, hogy az aktuális sor automatikusan törlődik. Ügyelj arra, hogy csak egyszer nyomjad meg a dd billentyűt, hogy elkerüld a több sor törlését. Ha a sor törlődik, akkor a következő sorra kerül a kurzor, és az lesz az aktuális.
Művelet visszavonása NVim alatt
Ha olyant teszel, amit megbántál, akkor a u lenyomásával vissza tudod fordítani a szerkesztést
Adott sorszámú sor törlése
Adott sorszámú sor törlése: :4d
Egy adott sor törléséhez az NVim szerkesztőben át kell váltani parancs módba, ami automatikus, ha a normál módban lenyomjuk a : gombot. Tegyük fel, hogy törölni akarjuk a 4. sort, írjuk be a :4d parancsot, majd nyomjuk meg az enter billentyűt.
Alternatív megoldásként használhatjuk a normál módot. Nyomjad meg az Esc billentyűt, majd vidd a kurzort az adott sorra, és törölje azt a billentyűzet dd gombjával.
Sorszámozás ki és be kapcsolása NVim alatt
- Sorszámozás bekapcsolása: :set nu
- Sorszámozás kikapcsolása: :set nu!
- Relatív sorszámozás bekapcsolása: :set rnu
- Relatív sorszámozás kikapcsolása: :set nornu
Több sor törlése
Több sor törlése: 4dd
Több sor törlése: :4d
Ha több sort szeretnél törölni, válts normál módba, majd add meg a törölni kívánt sorok számát, majd adjad ki a dd parancsot.
Például az aktuális sor következő 4 sorának törléséhez nyomjad meg a 4dd billentyűt.
Fontos és hibára ad okot: normál módban használjuk így, nem lépünk át a parancssorba a : előtaggal!
Ha parancs módot akarsz használni, akkor a :4d lesz a jó és az Enter.
A hatása ugyanaz, azt használsz amit akarsz. a
Egy tartomány törlése
Egy sortartomány törlése: 3,5dd
Egy sortartomány törlése: :3,5d
Jelenlegitől a végéig törölve: :.,$d
Tartomány törléséhez megadhatod a kezdőpontot és az utolsó sort. A :3,5d parancs törli a 3., 4. és 5. sort.
Hasonló a 3,5dd is, normál módban.
Hosszabb szövegben, vagy nagyobb távnál használd a sorszámozást!
A parancs mód lehetővé teszi, hogy különböző helyettesítő karaktereket adjunk meg egy tartományban lévő sorok törléséhez.
Pont (.) A vim aktuális sort jelöli.
Dollár ($) A fájl végét jelzi.
Az aktuális sor és az ötödik sor közötti összes sor törléséhez a parancs a következő lenne :.,5d. A jelenlegi sor alatti, de feletti értékeket is megadhatunk!
Az NVim szerkesztőben az összes sor törléséhez az aktuálistól kezdve végig a következő lenne: :.,$d
Az összes sor törlése az elejéig pedig: dgg.
vagy Parancs módban kell az Enter!
Sorok törlése minta szerint
Minta törlése: :g/minta/d
NVim szerkesztő a megadott mintákat is tud törli. Ez lehet egy reguláris kifejezés vagy egy szószerinti egyezés. Akárhogy is, törölheti a megadott mintának megfelelő sorokat a :g/\/d szintaxis használatával.
Fontos: itt nagyon oda kell figyelni, átgondolni az eredményt. Nem árt a reguláris kifejezéseket jól ismerni ehhez.
Lássunk néhány példát.
Ha törölni szeretnéd az összes olyan sort, amely egy adott kulcsszót tartalmaz, például a "Laci", akkor a következőképpen adhatod meg a parancsot: :g/Laci/d.
Az ellenkező eredményhez add hozzá a felkiáltójelet, ha el szeretnéd távolítani az összes olyan sort, amely nem tartalmazza a megadott kulcsszót. Az új parancsunk a következő lenne : g!/Laci/d.
Ha szkripttel dolgozol, és el szeretnéd távolítani az összes megjegyzéssel ellátott sort, használd a :g/^#/d megoldást.
Ha csak a #-el kezdődő sorokat akarod meghagyni, akkor a g elé tett ! jel megfordítja a törlési parancsot.
Az összes üres sor törlése :g/^$/d megoldással lehetséges. Nagyon hasznos, ha sokszor nyomogatja az ember feleslegesen az entert.
Nem üres az a sor, amiben egy vagy több tab, space karakter van, így azokat is érdemes külön meghatározni a \s karakterrel, így : g/^\s*$/d beírásával meg is oldjuk a problémát.
A sorok teljes törlését követően a sorban való törlést is ismerjük meg.
Törlés a sorban
Ha sor végéig akarunk törölni kurzortól: d$
Ha a kurzortól a sor elejéig: d^
A fenti parancsok az első pillanatban nem lesznek egyszerűen megjegyezhetőek, de picit gyakorolva már azok.
Nagy előnyük, hogy szerkesztés közben nem kell levenni a kezet a billentyűzetről, így gyorsabb, mint az egérműveletek.
A NVim is ad egyfajta grafikus törlési rendszert, amit a visual módban használhatunk.
Grafikus törlés a NVim alatt
A vizuális mód használata sorok törléséhez egyszerű, bár nekem nem áll kézre. Előbb az első törlendő sorra kell navigálni, majd majd belépni a visual módba a V lenyomásával lépjünk be. Azután már a kurzor billentyűkkel kijelölhetjük a téglalapot, amit törölni akarunk. Igény szerint egy függőleges blokkot is kijelölhetünk törlésre. Majd a megszokott d lenyomásával törlünk.
Tanuláshoz ajánlott:
Sorszámozás NVim (vi, vim) alatt
Nvim automata mentés beállítása
Nvim automata szócsere
NVim színek és panel
NVim testre szabása
NVim beállítása