Jak používat Undo ve Vimu

Photo of author

By etechblogcz

Při práci s editorem Vim v prostředí Linux se snadno dopustíme chyb. Naštěstí, jejich náprava je stejně snadná.

Jak zvrátit úpravy ve Vimu

Základní operace pro zrušení změn ve Vimu jsou podobné funkcím „Zpět“, které znáte z moderních textových procesorů, jako jsou Microsoft Word, LibreOffice Writer nebo Google Dokumenty. Vim si pamatuje všechny úpravy, které provedete v souboru, a v případě potřeby je dokáže vrátit zpět.

Vim považuje za změnu jakékoli akce prováděné v režimu vkládání textu nebo jakékoli příkazy zadané v příkazovém režimu. Například:

  • Pokud napíšete několik řádků v režimu vkládání a poté okamžitě použijete „Zpět“, všechny tyto řádky budou smazány.
  • Pokud napíšete jeden řádek, přepnete se do příkazového režimu, a následně se vrátíte do režimu vkládání a napíšete další text, vytvoříte tím dvě samostatné změny. Každou z nich pak lze vrátit zpět jednotlivě.

Můžete také používat složitější příkazy Vimu, například „3dd“ pro smazání tří řádků. I takovýto složený příkaz bude zaznamenán jako jedna poslední změna. Zpět můžete postupovat, dokud se nevrátíte do stavu, v jakém byl soubor v okamžiku jeho otevření nebo vytvoření.

Pokud ve Vimu zjistíte, že jste udělali něco, co jste nechtěli, zrušení této změny je jednoduchý dvoukrokový proces:

  • Stiskněte klávesu Esc, abyste se ujistili, že jste v příkazovém režimu.
  • Stisknutím klávesy „u“ zrušíte předchozí změnu.
  • A to je vše. Zobrazí se krátká zpráva o provedených změnách, například „n řádků odstraněno“.

    Pokud potřebujete vrátit zpět více změn najednou, je to také možné. Stačí před příkaz „undo“ zadat počet změn, které chcete vrátit zpět, stejně jako u mnoha jiných příkazů ve Vimu. Například, pro vrácení dvou posledních změn stiskněte:

    2u 

    Jak opakovat akce ve Vimu

    Někdy se může stát, že zrušení změny není to, co jste chtěli, nebo si to prostě rozmyslíte. V takovém případě můžete použít příkazy „redo“ pro obnovení předchozího stavu souboru.

    Stejně jako Vim sleduje vaše změny, sleduje i vaše kroky zpět. Proto můžete vracet akce zpět a poté je zase obnovovat, pokud je to potřeba. Nezapomeňte, že Vim považuje více řádků zadaných v režimu vkládání za jedinou změnu, takže po obnovení takovéto změny se vrátí všechny tyto řádky najednou.

    Pro obnovení změny použijte klávesovou zkratku Ctrl + r. Ujistěte se předtím, že jste v příkazovém režimu stisknutím klávesy Esc. „Redo“ funguje na stejném principu jako „undo“: počet opakování obnovení můžete zadat před zkratku, například „3Ctrl+r“ pro obnovení tří zrušených změn.

    Stejně jako u příkazu „Zpět“ se zobrazí krátká zpráva o změnách, které byly znovu provedeny, například o počtu řádků přidaných do souboru. Můžete takto opakovat libovolněkrát, dokud se nedostanete do aktuálního stavu souboru.