GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit více řádků ve Vimu

Všichni děláme chyby. Dělat chyby je lidské. Zlepšování je také důležité.

Pokud ve Vimu uděláte chybu, můžete slovo smazat pomocí dw v normálním režimu. Zadejte dd a odstraní aktuální řádek.

Pokud chcete ve Vimu odstranit více řádků, můžete použít stejný příkaz dd Vim přidáním počtu řádků.

Takže 10dd odstraní 10 řádků ze spodní části kurzoru (včetně řádku, na kterém je kurzor).

Pojďme se podrobně podívat na to, jak můžete odstranit jeden nebo více řádků v editoru, který je známý svou účinností.

Smazat jeden řádek

Níže jsou uvedeny kroky pro odstranění jednoho řádku textu ve Vimu:

  1. Do normálního režimu vstupte stisknutím klávesy Escape (Esc)
  2. Ujistěte se, že je kurzor na řádku, který chcete smazat.
  3. Rychle stiskněte dd

Tím smažete celý řádek, na kterém je váš kurzor.

Jak můžete vidět na gif, jsem na prvním řádku a spouštím dd příkaz smazal pouze první řádek.

Zadejte počet řádků ke smazání

Než použijete dd Chcete-li odstranit několik řádků najednou, můžete ve Vimu zadat číslo před ním.

Níže je syntaxe:

:[num]dd

Když zadáte číslo místo num , Vim začne mazat řádky. Můžete si to představit tak, že Vim provádí dd příkaz pro num krát.

Jak je patrné z gifu, spustil jsem příkaz 12dd (zobrazí se v pravém dolním rohu) a smazal blok 12 řádků.

Zadejte rozsah řádků, které chcete smazat

Namísto určení, kolik řádků se má smazat od aktuálního řádku dolů, stačí Vimu říct, od kterého řádku má začít mazat a do kterého řádku.

Níže je uvedena syntaxe pro odstranění rozsahu řádků:

:[begin],[end]d

Pojďme si tuto syntaxi rozebrat...

  • : (dvojtečka) označuje, že se jedná o příkaz Vim.
  • begin řekne Vim, od kterého řádku má začít
  • end říká Vim, jaký je poslední řádek k odstranění
  • d příkaz delete ve Vimu

Dále jsou níže uvedeny znaky používané k určení rozsahu (používané pro 'začátek' a 'konec):

  • . (aktuální řádek)
  • $ (poslední řádek v souboru)
  • % (všechny řádky)

Abyste se poučili z několika příkladů, pojďme se na ně podívat.

  • :10,45d - Smazat od 10. řádku do 45. řádku
  • :.,$d - Smazat z aktuálního řádku do posledního řádku
  • :.,1d - Smazat od aktuálního řádku po začátek souboru
  • :dgg - Smazat od aktuálního řádku po začátek souboru

Jak můžete vidět na tomto gifu, i když jsem na řádku 31 a napsal jsem :10,29d a smazal řádky od 10 do 29.

Smazat všechny řádky

Jak již bylo zmíněno, % symbol se používá k určení rozsahu od začátku do konce souboru, v podstatě všech řádků.

To znamená, že chcete-li odstranit všechny řádky souboru ve Vimu, musíte použít :%d příkaz.

Smazat řádky, které odpovídají určitému vzoru

Kromě všech těchto kouzel Vim věděli jste, že můžete odstranit čáry, které odpovídají konkrétnímu vzoru?

No, můžete, a zde je syntaxe.

:g/PATTERN/d

Chcete-li provést opak, odstranit řádky, které neodpovídají zadanému vzoru, můžete použít syntaxi uvedenou níže.

:g!/PATTERN/d

Když to rozebereme, dostaneme následující prvky:

  • g - hledat globálně (tj. celý soubor)
  • ! - obrácená shoda
  • PATTERN - vzor, ​​který se má shodovat
  • d - příkaz delete

Pokud ve Vimu spustíte následující příkaz, odstraní všechny řádky, které mají v řádku vzor „externí přepravka“.

:g/extern\ crate/d

Smazat všechny prázdné řádky

Pro smazání prázdných řádků je nutné použít regulární výraz pro porovnávání vzorů. Níže je uveden příkaz pro provedení mazání prázdných řádků:

:g/^$/d

V regulárním výrazu ^$ vzor znamená jakýkoli řádek, který začíná novým řádkem, v podstatě prázdným řádkem.

Závěr

Tento článek podrobně popisuje, jak můžete odstranit řádky ve Vimu. Zde je rychlé shrnutí toho, co jste se v tomto článku naučili. Klidně si to uložte a sdílejte na sociálních sítích:

Pokud se chcete naučit víc než jen základy Vim, vřele doporučuji použít tento program od Jovica Ilic.


Linux
  1. Jak připojit více řádků k souboru?

  2. Jak zobrazit čísla řádků ve vi/vim?

  3. Jak odstranit všechny řádky souboru ve Vimu

  1. Jak počítat řádky v souboru v UNIX/Linux

  2. VIM:jak přejít na přesnou linku na Ubuntu

  3. Jak zřetězit více řádků výstupu do jednoho řádku?

  1. Jak zobrazit nebo skrýt čísla řádků ve Vimu

  2. Jak odstranit řádek ve Vim na Linuxu

  3. Jak odstranit více náhodných řádků z textového souboru pomocí Sed?