Uživatelské nástroje

Nástroje pro tento web


navody:vim

Vim

Vim je pokročilý konzolový textový editor.

Ovládání

Editace

kombinace editace s pohybem

  • d - mazání
  • y - kopírování do registru
  • c - smaže text a přepne se do vkládacího modu
  • g~ - zamění malá/velká písmena v textu
  • gu - převede text na malá písmena
  • gU - převede text na velká písmena

editace

  • x - smaže znak
  • dat - smaže obsah mezi xml tagy (včetně tagů)
  • dd - smaže řádek
  • dit - smaže obsah mezi xml tagy
  • D - smaže znaky do konce řádku
  • p - vloží registr za aktuální pozici
  • P - vloží registr před aktuální pozici
  • yy/Y - vloží do registru aktuální řádek
  • J - připojí následující řádek k aktuálnímu s mezerou
  • gJ - připojí následující řádek k aktuálnímu bez mezery
  • C - smaže vše do konce řádku a přepne se do vkládacího módu
  • s - smaže aktuální znak a přepne se do vkládacího módu
  • S - smaže celý řádek a přepne se do vkládacího módu
  • r - přepis jednoho znaku
  • R - přepisovací mód
  • ~ - změní velikost znaku a posune kurzor doprava
  • u - vrátí poslední příkaz
  • Ctrl+r - obnoví poslední příkaz
  • U - odvolá všechny změny provedené na naposledy změněném řádku
  • . - opakuje poslední editační operaci
  • >> - posune odsazení řádku doprava
  • << - posune odsazení řádku doleva
  • == - odsadí tak, aby byl řádek správně formátovaný

Makra

  • q<a-z> - začátek nahrávání makra
  • q - ukončení nahrávání makra
  • @<a-z> - vyvolání makra

Mapování zkratek

  • map / noremap - rekurzivní / nerekurzivní mapování

Režimy

  • (nore)map - normální, vizuální
  • n(nore)map - normální
  • v(nore)map - vizuální
  • (nore)map! - vkládání, příkazový řádek
  • i(nore)map - vkládání
  • c(nore)map - příkazový řádek

Okna

  • Ctrl+w w - přepne do dalšího okna
  • Ctrl+w r - prohodí pořadí oken
  • Ctrl+w v - rozdělí okno vertikálně
  • Ctrl+w s - rozdělí okno horizontálně
  • Ctrl+w q - zavře okno
  • Ctrl+w + - zvětší výšku okna
  • Ctrl+w - - zmenší výšku okna
  • Ctrl+w > - zvětší šířku okna
  • Ctrl+w < - zmenší šířku okna
  • :sp / :split - rozdělí okna horizontálně
  • :vsp / :vsplit - rozdělí okna vertikálně

Pohyby

  • 0/Home - začátek řádku
  • ^/_ - první neprázdný znak řádku
  • $/End - konec řádku
  • 10| - desátý sloupec
  • f<znak> - následující výskyt znaku
  • F<znak> - předchozí výskyt znaku
  • t<znak> - před následující výskyt znaku
  • T<znak> - za předchozí výskyt znaku
  • ; - opakuje poslední hledání na řádku
  • , - opakuje poslední hledání na řádku v opačném směru
  • * - nalezení dalšího slova pod kuzorem
  • g* - nalezení slova pod kurzorem i když je součástí jiného slova
  • # - nalezení předchozího slova pod kurzorem
  • g] - skočí na definici
  • 100go - skočí na stý znak v souboru
  • '. - přesune se na poslední editovaný řádek
  • `. - přesune se na poslední editovanou pozici
  • '' - vrátí poslední skok (kurzor na začátku přechozího řádku)
  • `` - vrátí poslední skok (kurzor na poslední pozici)
  • ma - nastaví značku a na aktuální pozici (můžou být a-z lokální a A-Z globální)
  • 'a - přesune se na řádek se značkou a
  • `a - přesune se na pozici značky a
  • w, W - na začátek následujícího slova
  • e, E - na konec tohoto slova
  • b, B - na nejbližší předchozí začátek slova

u velkých písmen považuje vim za slovo posloupnost nebílých znaků a u malých nezapočítává třeba . nebo ,

  • ) - začátek nejbližší následující věty
  • ( - nejbližší předchozí začátek věty
  • } - za nejbližší následující konec odstavce
  • { - před nejbližší předcházející konec odstavce
  • % - odpovídající párová závorka
  • 5H - pátý řádek od vrchu okna
  • M - střed okna
  • 5L - pátý řádek od spodku okna
  • Ctrl + ^ - předchozí editovaný buffer
  • zt - odskroluje okno tak, aby byl kurzor nahoře
  • zz - odskroluje okno tak, aby byl kurzor uprostřed
  • zb - odskroluje okno tak, aby byl kurzor dole

Režim pro výběr

  • v - výběr od aktuální pozice
  • V - výběr celých řádků od aktuálního

Výběr xml tagů

  • at - vyběr až po párový tag včetně tagu
  • it - vyběr až po párový tag bez tagu (pouze vnitřek)
  • o/O - skok na párový tag

Skládání

  • zo - rozbalí blok
  • zc - sbalí blok
  • za - přepne sbalený/rozbalený blok

VimDiff

  • ]c - skočí na následující změnu
  • [c - skočí na předchozí změnu
  • do - použije změnu z druhého okna do aktuálního
  • dp - použije změnu z aktuálního okna do druhého

Vkládací režim

Přepnutí

  • a - za znak označený kurzorem (append)
  • i - před znak označený kurzorem (insert)
  • A - za poslední znak na aktuálním řádku
  • I - před první neprázdný znak na aktuálním řádku
  • o - nový řádek pod aktuálním řádkem
  • O - nový řádek nad aktuálním řádkem

Zkratky

  • Ctrl + p - doplňuje z předchozích slov
  • Ctrl + n - doplňuje z následujících slov
  • Ctrl + x Ctr + f - doplňuje cestu
  • Ctrl + x Ctr + l - doplňuje celé řádky
  • Ctrl + t - posouvá odsazení řádku doprava
  • Ctrl + d - posouvá odsazení řádku doleva

Zobrazení informací

  • Ctrl + g - zobrazí název souboru, počet řádků a pozici v procentech
  • g Ctrl + g - informace o znacích, slovech, řádcích sloupcích
  • [I - zobrazí řádky, které obsahují slovo pod kurzorem

Pluginy

Jedi-vim

Jedi-vim umožňuje nejen doplňovat v Python kódu.

Zkratky

  • Ctrl + mezerník - doplňování kódu
  • \ + g - najde přiřazení
  • \ + d - jde na definici
  • K - ukáže Pydoc
  • \ + r - přejmenuje
  • \ + n - ukáže požití

Ropevim

umožňuje požítí knihovny Rope ve Vimu

Instalace Fedora - pip

nejdříve je třeba nainstalovat Rope a pak Ropemode a Ropevim:

yum install python-pip
python-pip install ropemode
python-pip install ropevim
mkdir -p ~/.vim/plugin
cp /usr/share/vim/plugin/ropevim.vim ~/.vim/plugin/ropevim.vim

Klávesové zkratky

  • M-/ - doplňování kódu
  • M-? - doplňování bez nabídky (první možnost)
  • C-c g - jde na definici
  • C-c d - ukáže dokumentaci
  • C-c f - najde použití
  • C-c r r - přejmenuje slovo pod kurzorem

Mapování

použije Ctrl-Space pro doplňování s Ropevim

imap <C-Space> <M-/>

Tag List

zobrazuje okno s třídami, metodami a funkcemi

instalace Fedora

su -c "yum -y install vim-taglist"

Příkazy ex

  • :perldo s/<regex>/<nahradit>/ - pro nahrazení se použijí perlovské regulární výrazy
  • :buffers / :ls / :files - zobrazí otevřené soubory
  • :b / :bu / :buf / :buffer - s číslem nebo jménem přepne do bufferu
  • :e <soubor> - otevře soubor v novém bufferu
  • :sp <soubor> - otevře soubor v novém bufferu a rozdělí okno
  • :! <příkaz> - spustí příkaz
  • :r <soubor> - vloží obsah souboru
  • :r! <příkaz> - vloží výstup příkazu
  • :reg - vypíše aktuální obsah registrů

Editace řádků

  • :%g/<vzorek>/d - smaže všechny řádky, které korespondují se vzorkem
    • :g/^$/d - smaže prázdné řádky
  • :%g/^/m0 - všechny řádky v souboru budou v opačném pořadí
  • :%j - spojí všechny řádky do jednoho (oddělí mezerou)
  • :%j! - spojí všechny řádky do jednoho
  • :%s/<co>/<čím>/<volby> - nahrazování
  • :%s/background/&-color/g - nahradí všechny background za background-color
  • :%v/<vzorek>/d - smaže všechny řádky, které nekorespondují se vzorkem
  • :sort - seřadí řádky
  • :sort u - seřadí řádky a smaže duplicitní

put

  • :put =range(11,15) - za aktuální řádek vloží čísla 11-15 (každé na vlastní řádek)

set:

  • set: fileformat - ukáže typ konce řádků použitých v souboru hodnoty (dos, unix, mac)
  • set: fileencoding - ukáže kodování, v jakém je soubor zobrazený

Speciální příklady

Přeformátuje všechny php soubory

find . -name '*.php' -printf "echo -e \"G=gg\n:wq\n\" | vim %p\n" | sh
navody/vim.txt · Poslední úprava: 2020/08/19 09:33 autor: jules