Bez ohledu na to, zda jste sysadmin nebo vývojář softwaru, pokud pracujete v terminálu Linux, budete čelit situaci, kdy budete muset upravit textové soubory v terminálu.
Pokud jste omezeni na terminál, musíte použít jeden z editorů příkazového řádku, jako je Vim. Většina z nás je zvyklá na editory GUI a to způsobuje problém, protože použití editoru příkazového řádku není totéž jako použití grafického textového editoru, jako je Atom.
K dispozici je několik textových editorů příkazových řádků a můžete volně používat kterýkoli z nich. Vim je jedním z nejpopulárnějších textových editorů příkazového řádku a najdete jej nainstalovaný v jakékoli standardní distribuci Linuxu. To je důvod, proč vám hodně pomůže naučit se základy Vimu.
Toto není komplexní průvodce, který z vás udělá odborníka na Vim. Je to komplexní průvodce Vim, jehož cílem je poskytnout vám dostatek, abyste přežili Vim v linuxovém terminálu.
Doufám, že jste si nainstalovali Vim na Ubuntu nebo kteroukoli distribuci Linuxu, kterou používáte.
Základní příkazy Vim, které byste měli znát
Pokud jste již dříve pracovali s Vim, možná si jen chcete osvěžit vzpomínky tím, že se podíváte na tento cheat sheet pro Vim:
Příkaz Vim | Popis |
---|---|
i | Vstupte do režimu vkládání |
Esc | Vstupte do příkazového režimu |
x nebo Del | Smazat znak |
X | Smazat znak je režim Backspace |
u | Vrátit změny zpět |
Ctrl + r | Opakovat změny |
yy | Kopírovat řádek |
dd | Smazat řádek |
p | Vložte obsah vyrovnávací paměti |
/ | Vyhledejte a procházejte shody s n a N |
[[ nebo gg | Přesunout na začátek souboru |
]] nebo G | Přesunout na konec souboru |
:%s/foo/bar/gci | Vyhledejte a nahraďte všechny výskyty potvrzením |
Esc + :w | Uložit změny |
Esc + :wq nebo Esc + ZZ | Uložte a ukončete Vim |
Esc + :q! | Vynutit ukončení Vim zahozením všech změn |
Výše uvedené příkazy si můžete stáhnout také jako PDF. Stáhněte si ji, vytiskněte a mějte ji na stole pro rychlou orientaci.
Základní příkazy Vim Cheatsheet Linux Handbookvim-commands-cheatsheet-linux-handbook.pdf86 KB
Nebojte se, podrobně vysvětlím také tyto základní příkazy Vimu.
Pochopte režimy Vim
Než začneme, pojďme vědět o režimech Vim. Vim má tři režimy:
- Příkazový režim:Když spustíte Vim, přepnete se do příkazového režimu. V tomto režimu se můžete pohybovat po obrazovce, mazat text a kopírovat text.
- Režim vkládání:V příkazovém režimu nemůžete psát text. Pro zápis textu (nebo řekněme vložení textu) do souboru existuje vyhrazený režim vkládání. Když chcete něco napsat do souboru, musíte vstoupit do režimu vkládání.
- Vizuální režim:Některé jako příkazový režim, ale zde můžete použít klávesy se šipkami k výběru textu přes řádky (místo přímé práce se slovy a řádky podle polohy kurzoru).
Až budete znát režimy Vim, podívejme se na některé základní příkazy Vim pro různé účely.
Vstup do režimu vkládání ve Vimu
Vždy si pamatujte, že i znamená režim vkládání. stisknutím klávesy ‚i‘ vstoupíte do režimu vkládání .
Když vstoupíte do režimu vkládání, uvidíte – INSERT – v dolní části obrazovky editoru/terminálu. To znamená, že jste v režimu vkládání.
Ale i není jediný způsob, jak vstoupit do režimu vkládání. Existuje několik dalších příkazů pro vstup do režimu vkládání ve Vimu. Při vstupu do režimu vkládání je důležitá pozice kurzoru.
- i – Před kurzorem se objeví nový text
- a – Za kurzorem se zobrazí nový text
- I – Nový text se objeví na začátku aktuálního řádku
- A – Další text se zobrazí na konci aktuálního řádku
- o – Po aktuálním řádku se vytvoří nový řádek
- O – Před aktuálním řádkem se vytvoří nový řádek
Návrat do příkazového režimu ve Vimu
Začnete v příkazovém režimu, přejdete do režimu vkládání. Pokud se chcete posunout zpět do příkazového režimu, stiskněte klávesu Esc (escape) .
Po zadání textu doporučuji stisknout klávesu Esc pro vstup do příkazového režimu. Tímto způsobem nezadáte žádný nový text nevědomky, nedobrovolně. Tip:Pokud si nepamatujete nic jiného, nezapomeňte stisknout „i“ pro režim vkládání a klávesu Esc pro režim příkazů. To by mělo stačit.
Pohyb ve Vimu
Když jste ve Vimu, nemůžete klikat myší na bod na obrazovce jako normální textové nebo kódové editory. To je důvod, proč potřebujete znát pohybové příkazy na určitý řádek, slovo nebo pozici ve Vimu.
Vi/Vim puristé doporučují používat klávesy h, j, k a l pro pohyb nahoru, doleva, doprava a dolů, když jste v příkazovém režimu. I když to platí pro editory Vi i Vim, nerad bych používal tyto podivné kombinace kláves.
Drobnosti:Když byl editor Vi poprvé vyvinut, většina klávesnic neměla klávesy se šipkami. Proto byly pro pohyb použity klávesy h,j,k,l.
Pro pohyb ve Vimu používám šipky. Funguje to dobře, i když jste v režimu vkládání ve Vimu. To je standardní způsob pohybu, na který je zvyklá většina novější generace.
Pokud jste v Linuxu nebo Vimu noví, můžete se rozhodnout pro klávesy se šipkami. Žádná škoda.
Pokud však chcete být s Vimem trochu zběhlejší, možná si budete chtít zapamatovat několik zkratek Vimu pro snadný pohyb po obrazovce. Některé z mých oblíbených pohybových příkazů Vim jsou:
- H – Přesune se do horní části obrazovky. Všimněte si, že to nemusí vždy znamenat přesun na první řádek v souboru. Slouží pouze k přesunu do horní části viditelné obrazovky.
- L – Přesune se do spodní části obrazovky. Všimněte si, že to nemusí vždy znamenat přesun na poslední řádek v souboru. Slouží pouze k přesunutí do spodní části viditelné obrazovky.
- M – Přesune se doprostřed obrazovky.
- [[ – Přesune se na první řádek souboru. Zde můžete také použít gg.
- ]] – Přesune se na poslední řádek souboru. Zde můžete také použít G.
- nG – Přejděte na řádek číslo n. Pamatujte, že při psaní čísel řádků na obrazovce nic neuvidíte.
Tip:Čísla řádků můžete ve Vimu zobrazit tak, že přejdete do příkazového režimu a zadáte :set number
Jak vidíte, s těmito dodatečnými pohybovými příkazy pro vás bude snazší se pohybovat ve velkém textovém souboru. Můžete se naučit další pohybové příkazy jako { a } pro pohyb tam a zpět odstavec, w pro pohyb po slovech atd.
Můžete také použít „modifikátory opakovače“, jako je nG, který jste právě viděli u většiny příkazů ve Vimu. Pokud například použijete 5w, přesune se o 5 slov. Pokud použijete 6H, přesune se na 6. řádek od horní části obrazovky.
Modifikátory opakovače také pracují s „i“ a to je místo, kde mnoho lidí dělá chyby. Pokud jste omylem stiskli číslo jako 7 před stisknutím „i“ pro přechod do režimu vkládání, jakýkoli text, který napíšete, bude přidán 7krát. Neuvidíte jej na obrazovce okamžitě, dokud nezačnete dokument ukládat.
Co tedy dělat, když uděláte takovou hloupou chybu? Vraťte to zpět.
Vrácení změn ve Vimu
Pokud jste ve Vimu udělali chybu, nemusíte s ní žít věčně. Také jsem v takových případech viděl lidi opouštět editor bez uložení, což je trochu směšné.
Vim vám umožňuje vrátit zpět a znovu provést změny. Změny můžete také zopakovat. To vše samozřejmě platí ve stejné relaci. Po uložení změn je nelze vrátit zpět.
Chcete-li změnu vrátit zpět, přejděte do příkazového režimu a stiskněte klávesu „u“. Můžete jej stisknout několikrát pro více akcí zpět.
Pokud chcete změnu provést znovu, stiskněte v příkazovém režimu kombinaci kláves Ctrl+r. Můžete jej stisknout několikrát pro vícenásobné opakování akcí.
Mazání ve Vimu
Kromě vrácení změn můžete také chtít ze souboru odstranit nějaký text. Ve Vimu můžete ke smazání postavy vždy použít klávesu Delete, ale existuje několik kombinací kláves pro lepší manipulaci s mazáním ve Vimu.
- x – Smaže znak na aktuální pozici kurzoru stejně jako klávesa delete
- X – Odstraní znak před aktuální pozicí kurzoru jako klávesu Backspace. Všimněte si, že samotná klávesa Backspace ve Vimu nefunguje.
- dw – Odstranit slovo. Ve skutečnosti se smaže od aktuální pozice kurzoru až do konce aktuálního slova plus prázdné místo za ním.
- dd – Odstraní aktuální řádek.
- d$ – Odstraní od aktuální pozice kurzoru až do konce řádku.
- dG – Odstraní od aktuální pozice kurzoru až do konce souboru.
Poznámka:Ve Vimu nejsou žádné příkazy k vyjmutí, protože když něco smažete, smazaný text se umístí do vyrovnávací paměti. Jinými slovy, příkazy delete jsou příkazy cut.
Kopírování a vkládání ve Vimu
Možná vás zajímá, jak zkopírovat a vložit ve Vimu. To je oprávněná obava, protože ne vždy budete psát texty.
Ve Vimu existují dva druhy kopírování a vkládání. Jeden, který se zabývá vyrovnávací pamětí, a jeden, který se zabývá ‚externím‘ textem.
Když jste v příkazovém režimu, můžete pro kopírování textu použít buď zkratky terminálu Linux, nebo pro kopírování textu následující kombinace kláves:
- yw – zkopírujte slovo. Ve skutečnosti se kopíruje od aktuální pozice kurzoru až do konce aktuálního slova plus prázdné místo za ním.
- yy – Kopírovat aktuální řádek.
- y$ – Kopírování od aktuální pozice kurzoru až do konce řádku.
- yG – Kopírování od aktuální pozice kurzoru až do konce souboru.
Předpokládejme, že jste použili jeden z výše uvedených příkazů pro odstranění. Smazaný text je umístěn do vyrovnávací paměti. Tento text můžete vložit z vyrovnávací paměti pomocí těchto dvou příkazů pro vložení:
- p – Vloží obsah vyrovnávací paměti před pozici kurzoru
- P – Vložit obsah vyrovnávací paměti za pozici kurzoru
Všimněte si, že pokud jste smazali celý řádek, obsah bude umístěn před nebo za aktuální řádek pomocí výše uvedených příkazů pro vložení.
Příkazy vložení fungují pouze s vyrovnávací pamětí Vim. A co text, který jste zkopírovali z jiného souboru? V těchto případech můžete použít standardní kombinace kláves pro kopírování a vkládání vašeho linuxového terminálu.
V Ubuntu a mnoha dalších výchozích terminálech distribuce Linuxu se Ctrl+Shift+C používá pro kopírování a Ctrl+Shift+V se používá pro vkládání. V některých jiných terminálech jej výběrem zkopírujete a můžete jej vložit kliknutím pravým tlačítkem.
Ať už je způsob kopírování vložení do vašeho linuxového terminálu jakýkoli, můžete jej použít také ve Vimu. Jen se ujistěte, že jste v režimu vkládání pro tento typ kopírování.
Vyhledávání textu ve Vimu
Nalezení konkrétního textu je důležitou funkcí textového editoru. Text v souboru můžete hledat ve Vimu pomocí „/“.
V příkazovém režimu použijte / a poté zadejte hledaný text a stiskněte enter. Vše, co píšete, uvidíte v levém dolním rohu obrazovky.
To provede dopředné vyhledávání hledaného výrazu z pozice kurzoru. Můžete také použít „?“ a poté zadat hledaný výraz a stisknutím klávesy Enter provést zpětné vyhledávání. Pamatujte, že vyhledávání rozlišuje velká a malá písmena.
Pokud pro hledaný text existuje více než jedna shoda, můžete přejít na další pozici stisknutím klávesy n. Pokud se chcete vrátit k předchozí shodě, stiskněte N. V podstatě pomocí n a N můžete procházet všemi zápasy. Tip:Pomocí volby \c můžete ve Vimu spustit vyhledávání bez rozlišení velkých a malých písmen. Příklad:/\cMy_Search
Hledat a nahrazovat ve Vimu
Vim poskytuje náhradní příkaz (:s) pro vyhledávání a nahrazování textu. Při vyhledávání a nahrazování se silně spoléhá na regulární výrazy (regex).
Můžete jej použít následujícím způsobem:
:%s/foo/bar/g
Výše uvedený příkaz nahradí všechny „foo“ za „bar“ v celém souboru. ‚G‘ na konci je zodpovědné za rozšíření funkce hledání a nahrazování u všech shod. V opačném případě bude nahrazena pouze první shoda.
:s/foo/bar/g
Příkaz ‚:s‘ provede přesně stejnou funkci jako výše, ale pouze v aktuálním řádku namísto celého souboru.
Ve výchozím nastavení se při vyhledávání rozlišují velká a malá písmena. Aby se nerozlišovala malá a velká písmena, můžete použít příznak „i“ spolu s g.
:%s/foo/bar/gci
Zde jsem přidal další příznak „c“. Ve skutečnosti se vám možná nebude líbit představa, že by se celý váš odpovídající text nahradil v celém dokumentu během několika sekund. To je místo, kde příznak „c“ hodně pomáhá. S tímto příznakem potvrzení vás Vim požádá o potvrzení, zda chcete provést výměnu v každém zápase.
V potvrzovacím režimu se vám zobrazí následující možnost:nahradit UU (y/n/a/q/l/^E/^Y)?
Dovolte mi zde vysvětlit volby:
- y – ANO, nahradit tuto shodu
- n – NE, nenahrazujte tuto shodu a přejděte na další
- a – Nahradit VŠECHNY shody
- q – UKONČIT bez nahrazení jakékoli shody
- l – Nahraďte tuto shodu a ukončete, jako by to byla POSLEDNÍ shoda
- ^E – Posuňte obrazovku nahoru
- ^Y – Posuňte obrazovku dolů
Tip:Pokud si nepamatujete vše ostatní, pamatujte si:%s/foo/bar/gci se pokusí nahradit všechny shody v celém souboru vaším potvrzením.
Uložení a ukončení Vim
Právě jste se naučili základy příkazů Vim. Je čas uložit svou práci a ukončit Vim. Chcete-li uložit nebo ukončit Vim, musíte nejprve vstoupit do příkazového režimu stisknutím klávesy Esc. A pak můžete použít následující možnosti:
- :w – Uložte změny, ale neukončujte
- :wq – Uložit a ukončit
- :q – Stačí ukončit (pokud máte neuložené změny, zobrazí se toto varování:E37:Žádný zápis od poslední změny (přepsání přidáním !))
- :q! – Vynutit ukončení (zahodí všechny neuložené změny)
Stáhněte si Cheat Sheet Vim Command ve formátu PDF
Chápu, že pokud jste ve Vimu noví, může být obtížné zapamatovat si, co jste se právě naučili. Proto jsem vytvořil seznam základních příkazů vim a jejich rychlé vysvětlení.
Tento cheat pro Vim si můžete stáhnout ve formátu PDF, vytisknout si ho a uschovat na svém stole pro rychlou referenci.
Stáhněte si Cheat Sheet základních příkazů Vim
Jít dále s Vim
No, právě jste se naučili všechny základy Vimu, které potřebujete, abyste přežili tento děsivě úžasný textový editor. S těmito znalostmi můžete ve Vimu číst text, vyhledávat v něm a provádět základní úpravy. To bude stačit k tomu, abyste si ušetřili paniku, jakmile vás napadne myšlenka používat terminálový textový editor, jako je Vim.
Tuto stránku byste si měli uložit do záložek, abyste obnovili to, co jste se zde naučili na Vimu. Můžete také použít příkaz vimtutor. Většina distribucí Linuxu má nainstalovaný příkaz vimtutor. Pokud máte chuť oprášit své znalosti Vim nebo si procvičit příkazy Vim, stačí spustit vimtutor v terminálu.
Pokud chcete své dovednosti Vim posunout na další úroveň, vřele doporučuji zdroj Mastering Vim Quickly. Investice se vyplatí.
Doufám, že vám tento průvodce pomohl začít s Vim. Máte-li dotazy nebo návrhy, zanechte prosím komentář.