IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Základy editora Vim

Vim je veľmi mocný nástroj pre editáciu textu a je možné spustiť prakticky všade. Najmä jeho predchodca vi (Vim je jeho vylepšením) nájdete skoro na všetkých unixových systémoch. Preto je dobré vedieť aspoň základy jeho ovládanie. Program pre svoje spustenie nepotrebuje grafické prostredie (spustí sa v termináli) a je užitočný treba pri úprave konfiguračných, latexových či akýkoľvek iných textových súborov. Nie je však vhodný ako IDE pre programovanie. Existujú moduly, pomocou ktorých zastáva možné dosiahnuť, ale podľa môjho názoru je lepšie si preniesť Vim do IDE, viac o tom nájdete na konci.

Vim nebol napísaný tak, aby bol intuitívne, ale aby bol výkonný. Preto je zo začiatku ťažšie sa ho naučiť, ale po chvíli vám poskytne rýchlu a elegantný editáciu textu.

Inštalácia

Vim nie je nainštalovaný v základe, takže si ho musíte doinštalovať.

Pre Ubuntu / Mint / Debian:

sudo apt-get install -y vim

Spustenie a ukončenie programu

Vim spustíte jednoducho z konzoly pomocou príkazu vim, ktorému môžete pridať ako parameter cestu k editovanému súboru. Ak daný súbor neexistuje, vytvorí sa prázdny. Ak spustíte vim bez parametra, objaví sa vám toto okno, kde nápisy zmizne po napísaní akéhokoľvek znaku. Znak ~ symbolizuje neexistujúce riadok, pretože náš súbor je zatiaľ prázdny.

vim uvítacia obrazovka - Tipy, triky a návody

Pre ukončenie Vimu stlačte Esc a potom napíšte: quit a stlačte Enter. Taktiež stačí napísať: q. Ak ste vykonali nejaké zmeny, Vim vás nepustí a napíše, že ste neuložili zmeny. Ak dané zmeny nechcete uložiť, napíšte: q!. Ak však áno, tak súbor uložíte príkazom: w. Oba dva príkazy možno spojiť do: wq, alebo stlačiť ZZ, čo vykoná presne to isté. Avšak ak sa to Vimu stále nepáči, tak ste ho pravdepodobne spustili bez cesty k súboru, takže musíte uviesť názov (alebo i cestu), pod ktorým sa má uložiť:

:wq ./documents/vim_test.txt

Režimy práce

Vim obsahuje viac režimov, každý slúži na vykonávanie iných úkonov.

  • Príkazový režim, alebo tiež základný režim, je spojovníkom medzi ďalšími režimami. V tomto režime mažete, kopírujete a pohybujete sa po texte. A dostávate sa z neho do zvyšných dvoch režimov.
  • Vkladacie režim slúži k samotnému písanie textu. Dostanete sa do neho z príkazového režimu stlačením i. Späť do príkazového režimu sa dostanete pomocou klávesu Esc.
  • Režim ex je pre zadávanie príkazov na príkazovom riadku. Slúži na náročnejším operáciám a dostanete sa do neho napísaním: v príkazovom režime. Po vykonaní, stlačení Enter, ste späť v príkazovom režime. Ak príkaz nechcete vykonať, stačí opäť Esc.

Po štarte sme sa ocitli v príkazovom režime a (ako vám možno už došlo), ex režimu sme využili pri ukončení. Preto si teraz vyskúšame aj vkladacie režim. Spustite si vim, stlačením i a napíšte ľubovoľný text. Potom stlačte Esc a ste späť v príkazovom režime. A začnite skúšať príkazy, ktoré nájdete nižšie.

Pohyb po texte

Všetky príkazy platí pre príkazový režim.

Keď bol pôvodný vi napísaný, nie každý terminál mal šípky na klávesnici. Z tohto dôvodu je základná pohyb po texte nastavený na hj kl (v príkazovom režime). Samozrejme už je dnes možné použiť aj šípky, ale keď budete používať hjkl, nemusíte presúvať ruku na šípky a zase späť.

  • h - doľava (je vľavo)
  • j - dole (vyzerá trochu ako šípka dole)
  • k - hore
  • l - doprava (je vpravo)

Ďalej je možné použiť posun o slovo:

  • e - na koniec slova
  • w - na začiatok nasledujúceho slova
  • b - na najbližší začiatok slova smerom späť

A taktiež posuny o vetu (veta je úsek, ktorý končí.?!):

  • ) - na začiatok nasledujúcej vety
  • (- na najbližší začiatok vety smerom späť

Mazanie

Vo vkladacím režime môžete zmazať predchádzajúci znak pomocou Backspace alebo aktuálny znak pomocou Delete, ale v príkazovom režime toho môžete oveľa viac.

Pre každú operáciu v príkazovom režime platí, že ju jednoducho prevediete viackrát, keď pred ňu napíšete počet prevedení. Skúste si napísať 20l alebo 3w. Vďaka tomuto sa mazania a všetky ďalšie operácie dajú uľahčiť.

Pre zmazanie aktuálneho znaku sa v príkazovom režime používa x. Skúste si ho zadať opäť s počtom opakovaní pred ním, treba 5x. Ďalšou možnosťou je použiť príkaz d, ku ktorému je potrebné zadať ešte druhý parameter, ktorý označuje, koľko sa toho má zmazať. Ako tento parameter sa použije príkaz pre posun, napr .:

  • dh - zmaže predchádzajúci znak
  • de - zmaže text do konca slova
  • d) - zmaže text do konca vety

Rýchle nahradenie v príkazovom režime

Po stlačení r nahradíte znak pod kurzorom znakom, ktorý napíšete. Po stlačení R nahrádzate znaky až po smáčknutí Esc.

Kopírovanie

Keď zmažete nejaký text, tak sa uloží do registra a vy ho môžete vložiť pomocou príkazu p. Ak nechcete daný text zmazať, ale iba skopírovať, tak namiesto d použite písmeno y. Okrem d a y sú aj iné príkazy, ktoré sa používajú úplne rovnako:

  • c - zmaže text a prepne vás do vkladacieho režimu
  • > - posunie text doprava
  • <- posunie text doľava
  • gu - prevedie na malé písmená
  • gu - prevedie na veľké písmená

Vrátení zmien späť

Ak ste zvyknutí na Ctrl-Z zo svojho obľúbeného editora, tak sa nemusíte báť, aj Vim obsahuje túto funkciu. Pre vrátenie zmien späť stačí stlačiť u. Vim umožňuje opakované použitie a tiež vykonanie zmien znova pomocou Ctrl-R. Taktiež je možne použiť kláves U, ktorá vracia späť všetky zmeny na danom riadku. Skúste použiť opakovane :-) .

Hľadanie a nahradzovanie

Hľadanie sa spúšťa pomocou **, a za lomka sa píše, čo chcete v súbore nájsť. Medzi výsledky sa listuje pomocou n (dopredu) a N (dozadu). K nahrádzanie sa používa ex režim vo forme:

:s/to, co chci nahradit/to, čím to chci nahradit

To však zmení len prvý výskyt, takže pre všetky výskyty na riadku použijeme:

:s/před/po/g

Pre zmenu v celom dokumente

:%s/před/po/g

Pre zmenu medzi riadkami:

:1,15s/před/po/g`  //místo 1 a 15 dosaďte vlastní čísla řádků

Dodatok

Vkladacie režim

Na začiatku som vás nechcel miasť viacerými možnosťami, ako sa dostať do vkladacieho režimu. Existujú totiž príkazy, pomocou ktorých sa dostanete na rôzne miesta.

  • i - budete písať pred kurzor
  • a - budete písať za kurzor
  • I - na začiatok riadku
  • A - na koniec riadku
  • o - vloží riadok za aktuálny riadok a budete písať tam
  • O - vloží riadok pred aktuálny riadok a budete písať tam

Tiež je možné používať toto vkladanie s počtom opakovaní a to jednoducho tak, že napíšete počet opakovaní, príkaz pre vkladacie režim, napíšete text a stlačíte Esc a je to:

10oUž nikdy nebudu plýtvat křídou Esc

Veľa som vás tiež veľa oklamal o možnosti pohybu kvôli pochopenie princípu.

Posuny o slovo

  • e, E - na koniec slova
  • w, W - na začiatok nasledujúceho slova
  • b, B - na najbližší začiatok slova smerom dozadu

e, w, b chápu ako slovo rad písmen, číslic a podčiarkovníkov (19_srpna), alebo rad iných neprázdnych znakov (- $ ,.), ale nikdy nie spolu ( "Viem." sú 2 slová). Kým E, W, B berú ako slovo akúkoľvek rad neprázdnych znakov dohromady ( "Viem." Je jedno slovo).

Posuny o odsek (koniec odseku je prázdny riadok)

  • } - na najbližší koniec odseku
  • {- na najbližší koniec odseku smerom späť

Taky možno použiť príkazy pre pohyb na riadku

  • 0 (nula) - na začiatok riadku
  • ^ - na prvý vytlačiteľnej znak riadku
  • $ - na koniec riadku

Existuje ešte posun po riadku pomocou vyhľadávania znakov

  • f + znak - na nasledujúci znak (proste stlačíme potrebné pre písmeno v fv)
  • F + znak - na predchádzajúci znak
  • t + znak - pred nasledujúci znak
  • T + znak - za predchádzajúci znak

A posledná je pohyb medzi dvojicou zátvoriek () {} [] a dvojznaků komentárov /*komentář*/ pomocou%. Keď ste na otváracom znaku, premiestni vás to na koncový znak a naopak z koncového na otváraciu znak.

Samozrejme tieto možnosti pohybu je možné použiť u modifikátorov ako d, y, c:

  • d) - zmaže zvyšok vety
  • d} - zmaže zvyšok odseku
  • d ^ - zmaže text do začiatku riadku
  • d $ - zmaže zvyšok riadku, preto možno použiť taktiež rýchlejšie príkaz dd
  • DFB - zmaže text až do nasledujúceho výskytu znaku b

Pár vychytávok na záver:

  • pre opakovanie minulej editačné činnosti stačí stlačiť.
  • pri použití i napríklad v modifikátora d - di {sa zmaže všetko vo {}, u (zase v () au [si to už určite domyslíte.
  • pri použití a treba v modifikátora d - daw sa zmaže celé slovo (a ako all)
  • pre rýchle prelietavaniu je najlepší Ctrl-F o obrazovku dopredu a Ctrl-B späť.
  • hľadanie pomocou / možno použiť aj s modifikátory (d, c, y), takže d / test zmaže test až po test

Ak sa vám ovládanie Vimu zapáčilo a prišlo vám to rýchle, užitočné a logické, čo sa na prvé zoznámenie moc často nestáva, a chceli by ste použiť Vim iu programovanie, tak sa pozrite na Vim plugin pre svoje IDE. Určite ich nájdete pre Netbeans, Eclipse, IDEA, PyCharm a ďalšie. Pre precvičenie a zapamätanie skúste oficiálny tutoriál, ktorý spustíte príkazom vimtutor v príkazovom riadku. Ak by ste chceli precvičovať Vim aj hrou, tak sa pozrite na Vim Adventures.


 

Všetky články v sekcii
Tipy, triky a návody
Článok pre vás napísal Michal Martinek
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity