Difference between revisions of "Editor vi/vim"

From Znalosti
(Založena nová stránka s textem „Kategorie:Linux == Příkazy editoru vi/vim == Souhrnný přehled vim - skutečný editor textů Nebo také (přehlednější, stručný) Editor vi…“)
 
m
 
(6 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
== Příkazy editoru vi/vim ==
 
== Příkazy editoru vi/vim ==
  
Souhrnný přehled vim - skutečný editor textů
+
* Souhrnný přehled [http://www.nti.tul.cz/~satrapa/docs/vim/ vim - skutečný editor textů]
 
+
* Nebo také (přehlednější, stručný) [http://www.ucsimply.cz/elnx/editor-vi/ Editor vi]
Nebo také (přehlednější, stručný) Editor vi
+
* [http://www.linfo.org/vi/index.html How to use vi] - učební text
 
+
* Důležitý článek: [http://www.viemu.com/a-why-vi-vim.html Why, oh WHY, do those #?@! nutheads use vi?]
How to use vi - učební text
 
 
 
Důležitý článek: Why, oh WHY, do those #?@! nutheads use vi?
 
 
== Shrnutí ==
 
== Shrnutí ==
  
    === tři módy činnosti ===
+
=== tři módy činnosti ===
        příkazový - znaky jsou interpretovány jako příkazy
+
# příkazový - znaky jsou interpretovány jako příkazy
        vkládací - vkládání textu - na poslední řádce INSERT
+
# vkládací - vkládání textu - na poslední řádce INSERT
            do něho pomocí příkazů i,a,c,o,s,A,C,I,O,R,S
+
#* do něho pomocí příkazů i,a,c,o,s,A,C,I,O,R,S
            z něho zpět do příkazového Esc
+
#* z něho zpět do příkazového Esc
        rozšířený příkazový (ex mód)
+
# rozšířený příkazový (ex mód)
            do něho příkazem :, dvojtečka se vypíše na posledním řádku, pak se vloží rozšířený příkaz ukončený Enter a návrat do příkazového módu
+
do něho příkazem :, dvojtečka se vypíše na posledním řádku, pak se vloží rozšířený příkaz ukončený Enter a návrat do příkazového módu
    spuštění vi pokus
+
=== spuštění ===
 
+
Editor <tt>vi</tt> spustíme příkazem
    ukončení
+
vi NázevSouboru
        ZZ s uložením opravovaného souboru
+
=== ukončení ===
        :q bez uložení souboru
+
* ZZ s uložením opravovaného souboru
        :q! bez uložení u změněného souboru
+
* :q bez uložení souboru
        :w pokus2 uložení souboru pod jiným jménem
+
* :q! bez uložení u změněného souboru
    pohyb kurzoru
+
* :w pokus2 uložení souboru pod jiným jménem
        šipkami - většinou fungují
+
=== pohyb kurzoru ===
        pokud nefungují tak
+
* šipkami - většinou fungují
        h j k l
+
* pokud nefungují tak
        $\leftarrow$ $\downarrow$ $\uparrow$ $\rightarrow$
+
** h j k l
        w (word) na začátek následujícího slova
+
*w (word) na začátek následujícího slova
        b (back) na začátek předchozího slova
+
* b (back) na začátek předchozího slova
        0 na začátek řádky
+
* 0 na začátek řádky
        $ na konec řádky
+
* $ na konec řádky
        H (Home) za začátek první řádky obrazovky
+
* H (Home) za začátek první řádky obrazovky
        M (Middle) na začátek prostřední řádky obrazovky
+
* M (Middle) na začátek prostřední řádky obrazovky
        L (Low) na začátek poslední řádky obrazovky
+
* L (Low) na začátek poslední řádky obrazovky
    pohyb v delším souboru
+
=== pohyb v delším souboru ===
        Ctrl-f (forward) o obrazovku dolu - jako Page Down
+
* Ctrl-f (forward) o obrazovku dolu - jako Page Down
        Ctrl-b (backward) o obrazovku nahoru - jako Page Up
+
* Ctrl-b (backward) o obrazovku nahoru - jako Page Up
        28G (goto) skok na 28. řádku
+
* 28G (goto) skok na 28. řádku
        G skok na poslední řádku souboru
+
* G skok na poslední řádku souboru
    vkládání a změny v souboru - přepnutí do vkládacího módu
+
=== vkládání a změny v souboru - přepnutí do vkládacího módu ===
        i (insert) následný text se vkládá před kurzor
+
* i (insert) následný text se vkládá před kurzor
        a (append) následný text se vkládá za kurzor
+
* a (append) následný text se vkládá za kurzor
        I (Insert) následný text se vkládá před první znak řádky
+
* I (Insert) následný text se vkládá před první znak řádky
        A (Append) následný text se vkládá za poslední znak řádky
+
* A (Append) následný text se vkládá za poslední znak řádky
        R (Replace) následný text přepisuje od pozice kurzoru
+
* R (Replace) následný text přepisuje od pozice kurzoru
        r (replace) přepíše jeden znak
+
* r (replace) přepíše jeden znak
        s (substitute) přepíše jeden znak a přepne se do vkládacího módu
+
* s (substitute) přepíše jeden znak a přepne se do vkládacího módu
        u (undo) zruší poslední změnu
+
* u (undo) zruší poslední změnu
        Enter ve vkládacím módu přejde na novou řádku
+
* Enter ve vkládacím módu přejde na novou řádku
        Esc ukončí vkládání textu a přejde do příkazového módu
+
* Esc ukončí vkládání textu a přejde do příkazového módu
    dělení s pojování řádek
+
=== dělení s pojování řádek ===
        i Enter Esc rozdělí rádek v místě kurzoru
+
* i Enter Esc rozdělí rádek v místě kurzoru
        J (Join) připojí další řádek k aktuální řádce
+
* J (Join) připojí další řádek k aktuální řádce
        5J spojí 5 řádek
+
* 5J spojí 5 řádek
    mazání textu
+
=== mazání textu ===
        x maže znak pod kurzorem
+
* x maže znak pod kurzorem
        X maže znak před kurzorem
+
* X maže znak před kurzorem
        dd maže aktuální řádek
+
* dd maže aktuální řádek
        5dd maže 5 řádek
+
* 5dd maže 5 řádek
        D maže vše od kurzoru do konce řádky
+
* D maže vše od kurzoru do konce řádky
        p (paste) vloží naposled smazaný text
+
* p (paste) vloží naposled smazaný text
 
+
=== vyhledávání řetězců ===
   
+
* /jana hledá následující výskyt řetězce "jana"
    vyhledávání řetězců
+
* ?josef hledá předcházející výskyt řetězce "josef"
        /jana hledá následující výskyt řetězce ´´jana''
+
* n (next) opakuje poslední hledání
        ?josef hledá předcházející výskyt řetězce ´´josef''
+
* N (Next) opokuje poslední hledání v opačném směru
        n (next) opakuje poslední hledání
+
=== záměna řetězců ===
        N (Next) opokuje poslední hledání v opačném směru
+
* :/josef/pepa/ (substitute) nahradí první výskyt na aktuální řádce
 
+
* :/josef/pepa/g (global) nahradí všechny výskyty na aktuální řádce
   
+
* :/josef/pepa/gc (confirm) nahradí všechny výskyty na aktuální řádce s potvrzením y Enter nahradí a Enter přeskočí
    záměna řetězců
+
* :%s/josef/pepa/g nahradí všechny výskyty v celém souboru
        :/josef/pepa/ (substitute) nahradí první výskyt na aktuální řádce
+
* :5,18s/josef/pepa/g nahradí všechny výskyty na řádcích 5-18
        :/josef/pepa/g (global) nahradí všechny výskyty na aktuální řádce
+
=== kopírování a přesouvání ===
        :/josef/pepa/gc (confirm) nahradí všechny výskyty na aktuální řádce s potvrzením y Enter nahradí a Enter přeskočí
+
* přes nepojmenovanou paměť (jen v rámci jednoho souboru)
        :%s/josef/pepa/g nahradí všechny výskyty v celém souboru
+
** yy nebo Y (yank) uloží aktuální řádek do paměti
        :5,18s/josef/pepa/g nahradí všechny výskyty na řádcích 5-18
+
** 5yy uloží 5 řádek
 
+
** dd uloží aktuální řádku a vymaže ji
   
+
** 5dd uloží 5 řádek a vymaže je
    kopírování a přesouvání
+
** p (put) vloží text z paměti za aktuální řádku
        přes nepojmenovanou paměť (jen v rámci jednoho souboru)
+
** P (Put) vloží text z paměti před aktuální řádku
            yy nebo Y (yank) uloží aktuální řádek do paměti
+
* přes pojmenované paměti a-z
            5yy uloží 5 řádek
+
** "ayy uloží aktuální řádku do paměti a
            dd uloží aktuální řádku a vymaže ji
+
** "b7yy uloží 7 řádek do paměti b
            5dd uloží 5 řádek a vymaže je
+
** "c5dd uloží 5 řádek do paměti c a vymaže je
            p (put) vloží text z paměti za aktuální řádku
+
** "bp vloží text z paměti b
            P (Put) vloží text z paměti před aktuální řádku
+
=== práce s více soubory ===
 
+
* :e pokus3 opravujeme další soubor
       
+
* :e# návrat na předcházející soubor
        přes pojmenované paměti a-z
+
* :r pokus4 vložení souboru za aktuální řádek
            "ayy uloží aktuální řádku do paměti a
+
* :w pokus5 uložení pod jiným jménem
            "b7yy uloží 7 řádek do paměti b
+
=== příkazy unixu ===
            "c5dd uloží 5 řádek do paměti c a vymaže je
+
* :cd work změna adresáře
            "bp vloží text z paměti b
+
* :sh spuštění shellu - ukončení Ctrl-d
 
+
=== načtení souboru příkazů source ===
       
+
=== odsazováni a zalamování textu ===
    práce s více soubory
+
=== nastavení prostředí ===
        :e pokus3 opravujeme další soubor
+
* :set all vypíše nastavení všech voleb
        :e# návrat na předcházející soubor
+
* :set vypíše změněné volby
        :r pokus4 vložení souboru za aktuální řádek
+
* :set number před řádky jsou jejich čísla
        :w pokus5 uložení pod jiným jménem
+
* :set nonumber zrušení volby - prefix no
 
+
* atd.
   
 
    příkazy unixu
 
        :cd work změna adresáře
 
        :sh spuštění shellu - ukončení Ctrl-d
 
 
 
   
 
    makra
 
 
 
   
 
    načtení souboru příkazů source
 
 
 
   
 
    odsazováni a zalamování textu
 
 
 
   
 
    nastavení prostředí
 
        :set all vypíše nastavení všech voleb
 
        :set vypíše změněné volby
 
        :set number před řádky jsou jejich čísla
 
        :set nonumber zrušení volby - prefix no
 
        atd.
 

Latest revision as of 13:07, 1 July 2016

Příkazy editoru vi/vim

Shrnutí

tři módy činnosti

  1. příkazový - znaky jsou interpretovány jako příkazy
  2. vkládací - vkládání textu - na poslední řádce INSERT
    • do něho pomocí příkazů i,a,c,o,s,A,C,I,O,R,S
    • z něho zpět do příkazového Esc
  3. rozšířený příkazový (ex mód)
  • do něho příkazem :, dvojtečka se vypíše na posledním řádku, pak se vloží rozšířený příkaz ukončený Enter a návrat do příkazového módu

spuštění

Editor vi spustíme příkazem

vi NázevSouboru

ukončení

  • ZZ s uložením opravovaného souboru
  • :q bez uložení souboru
  • :q! bez uložení u změněného souboru
  • :w pokus2 uložení souboru pod jiným jménem

pohyb kurzoru

  • šipkami - většinou fungují
  • pokud nefungují tak
    • h j k l
  • w (word) na začátek následujícího slova
  • b (back) na začátek předchozího slova
  • 0 na začátek řádky
  • $ na konec řádky
  • H (Home) za začátek první řádky obrazovky
  • M (Middle) na začátek prostřední řádky obrazovky
  • L (Low) na začátek poslední řádky obrazovky

pohyb v delším souboru

  • Ctrl-f (forward) o obrazovku dolu - jako Page Down
  • Ctrl-b (backward) o obrazovku nahoru - jako Page Up
  • 28G (goto) skok na 28. řádku
  • G skok na poslední řádku souboru

vkládání a změny v souboru - přepnutí do vkládacího módu

  • i (insert) následný text se vkládá před kurzor
  • a (append) následný text se vkládá za kurzor
  • I (Insert) následný text se vkládá před první znak řádky
  • A (Append) následný text se vkládá za poslední znak řádky
  • R (Replace) následný text přepisuje od pozice kurzoru
  • r (replace) přepíše jeden znak
  • s (substitute) přepíše jeden znak a přepne se do vkládacího módu
  • u (undo) zruší poslední změnu
  • Enter ve vkládacím módu přejde na novou řádku
  • Esc ukončí vkládání textu a přejde do příkazového módu

dělení s pojování řádek

  • i Enter Esc rozdělí rádek v místě kurzoru
  • J (Join) připojí další řádek k aktuální řádce
  • 5J spojí 5 řádek

mazání textu

  • x maže znak pod kurzorem
  • X maže znak před kurzorem
  • dd maže aktuální řádek
  • 5dd maže 5 řádek
  • D maže vše od kurzoru do konce řádky
  • p (paste) vloží naposled smazaný text

vyhledávání řetězců

  • /jana hledá následující výskyt řetězce "jana"
  • ?josef hledá předcházející výskyt řetězce "josef"
  • n (next) opakuje poslední hledání
  • N (Next) opokuje poslední hledání v opačném směru

záměna řetězců

  •  :/josef/pepa/ (substitute) nahradí první výskyt na aktuální řádce
  •  :/josef/pepa/g (global) nahradí všechny výskyty na aktuální řádce
  •  :/josef/pepa/gc (confirm) nahradí všechny výskyty na aktuální řádce s potvrzením y Enter nahradí a Enter přeskočí
  •  :%s/josef/pepa/g nahradí všechny výskyty v celém souboru
  • :5,18s/josef/pepa/g nahradí všechny výskyty na řádcích 5-18

kopírování a přesouvání

  • přes nepojmenovanou paměť (jen v rámci jednoho souboru)
    • yy nebo Y (yank) uloží aktuální řádek do paměti
    • 5yy uloží 5 řádek
    • dd uloží aktuální řádku a vymaže ji
    • 5dd uloží 5 řádek a vymaže je
    • p (put) vloží text z paměti za aktuální řádku
    • P (Put) vloží text z paměti před aktuální řádku
  • přes pojmenované paměti a-z
    • "ayy uloží aktuální řádku do paměti a
    • "b7yy uloží 7 řádek do paměti b
    • "c5dd uloží 5 řádek do paměti c a vymaže je
    • "bp vloží text z paměti b

práce s více soubory

  • :e pokus3 opravujeme další soubor
  • :e# návrat na předcházející soubor
  • :r pokus4 vložení souboru za aktuální řádek
  • :w pokus5 uložení pod jiným jménem

příkazy unixu

  • :cd work změna adresáře
  • :sh spuštění shellu - ukončení Ctrl-d

načtení souboru příkazů source

odsazováni a zalamování textu

nastavení prostředí

  • :set all vypíše nastavení všech voleb
  • :set vypíše změněné volby
  • :set number před řádky jsou jejich čísla
  • :set nonumber zrušení volby - prefix no
  • atd.