GNU/Linux >> Znalost Linux >  >> Linux

Jak upravit více souborů pomocí editoru Vim

Někdy se ocitnete v situaci, kdy chcete provést změny ve více souborech. Nebo můžete chtít zkopírovat obsah jednoho souboru do druhého. Pokud jste v režimu GUI, můžete jednoduše otevřít soubory v libovolném grafickém textovém editoru, jako je gedit, a použít CTRL+C a CTRL+V ke zkopírování/vložení obsahu. V režimu CLI nelze takové editory používat. Bez obav! Kde je editor vim, tam je cesta! V tomto tutoriálu se naučíme upravovat více souborů současně pomocí editoru Vim. Věřte mi, je to velmi zajímavá funkce Vimu!

Nainstalujte Vim na Linux

Editor Vim je dostupný v oficiálních repozitářích většiny distribucí Linuxu. Můžete jej tedy nainstalovat pomocí výchozího správce balíčků.

Například na Arch Linux a jeho varianty jej můžete nainstalovat pomocí příkazu:

$ sudo pacman -S vim

V Debianu , Ubuntu :

$ sudo apt-get install vim

Na RHEL , CentOS :

$ sudo yum install vim

Na Fedoře :

$ sudo dnf install vim

Na openSUSE :

$ sudo zypper install vim

Upravte více souborů najednou pomocí editoru Vim v Linuxu

Existuje mnoho způsobů, jak upravit násobky pomocí editoru Vim. Znám dvě metody.

Metoda 1

Mám dva soubory, jmenovitě soubor1.txt a soubor2.txt s hromadou náhodných slov. Pojďme se na ně podívat.

$ cat file1.txt 
ostechnix
open source
technology
linux
unix
$ cat file2.txt 
line1
line2
line3
line4
line5

Nyní upravme tyto dva soubory najednou pomocí editoru Vim. Chcete-li to provést, spusťte:

$ vim file1.txt file2.txt

Vim zobrazí obsah souborů v pořadí. Nejprve se zobrazí obsah prvního souboru a poté druhého souboru a tak dále.

Upravit více souborů pomocí editoru Vim

Přepínání mezi soubory

Chcete-li přejít na další soubor, zadejte:

:n

Přepínejte mezi soubory v editoru Vim

Chcete-li se vrátit k předchozímu souboru, zadejte:

:N

Zde je N velké (typ SHIFT+n).

Začněte upravovat soubory stejně jako v editoru Vim. Stisknutím „i“ přepnete do interaktivního režimu a upravíte obsah podle svých představ. Po dokončení stiskněte ESC pro návrat do normálního režimu.

Vim vám nedovolí přejít na další soubor, pokud existují nějaké neuložené změny. Chcete-li uložit změny do aktuálního souboru, zadejte:

ZZ

Upozorňujeme, že se jedná o dvojitá velká písmena ZZ (SHIFT+zz).

Chcete-li zrušit změny a přejít na předchozí soubor, zadejte:

:N!

Chcete-li zobrazit soubory, které jsou aktuálně upravovány, zadejte:

:buffers

Zobrazení souborů ve vyrovnávací paměti ve VIm

Ve spodní části uvidíte seznam načtených souborů.

Seznam souborů ve vyrovnávací paměti ve Vimu

Chcete-li přepnout na další soubor, zadejte :buffer následuje číslo vyrovnávací paměti. Chcete-li například přepnout na první soubor, zadejte:

:buffer 1

Nebo prostě udělejte:

:b 1

Přepnout na další soubor ve Vimu

Stačí si zapamatovat tyto příkazy pro snadné přepínání mezi buffery:

:bf            # Go to first file.
:bl            # Go to last file
:bn            # Go to next file.
:bp            # Go to previous file.
:b number  # Go to n'th file (E.g :b 2)
:bw            # Close current file.

Otevírání dalších souborů pro úpravy

Aktuálně upravujeme dva soubory a to soubor1.txt, soubor2.txt. Možná budete chtít otevřít jiný soubor s názvem file3.txt pro úpravu. Co budeš dělat? Je to snadné! Stačí zadat :e následovaný názvem souboru jako níže.

:e file3.txt

Otevřete další soubory pro úpravy ve Vimu

Nyní můžete upravit soubor 3.txt.

Chcete-li zobrazit, kolik souborů se aktuálně upravuje, zadejte:

:buffers

Zobrazit všechny soubory ve vyrovnávací paměti ve Vimu

Upozorňujeme, že pomocí :e nelze přepínat mezi otevřenými soubory pomocí buď :n nebo :N . Chcete-li přepnout na jiný soubor, zadejte :buffer následované číslem vyrovnávací paměti souboru.

Kopírování obsahu jednoho souboru do jiného

Víte, jak otevřít a upravit více souborů současně. Někdy možná budete chtít zkopírovat obsah jednoho souboru do jiného. Je to také možné. Přepněte na soubor dle vašeho výběru. Řekněme například, že chcete zkopírovat obsah souboru1.txt do souboru2.txt.

Chcete-li tak učinit, nejprve přepněte na soubor1.txt:

:buffer 1

Umístěte kurzor před řádek, který chcete zkopírovat, a zadejte yy vytrhnout (zkopírovat) řádek. Poté přejděte na soubor2.txt:

:buffer 2

Umístěte kurzor myši na místo, kam chcete vložit zkopírované řádky ze souboru file1.txt, a zadejte p . Například chcete vložit zkopírovaný řádek mezi řádek2 a řádek3. Chcete-li to provést, umístěte kurzor myši před řádek a zadejte p .

Ukázkový výstup:

line1
line2
ostechnix
line3
line4
line5

Kopírování obsahu jednoho souboru do jiného souboru pomocí Vim

Chcete-li uložit změny provedené v aktuálním souboru, zadejte:

ZZ

Znovu upozorňujeme, že se jedná o dvojité velké ZZ (SHIFT+z).

Chcete-li uložit změny ve všech souborech a ukončit editor vim. typ:

:wq

Podobně můžete zkopírovat libovolný řádek z libovolného souboru do jiných souborů.

Kopírování celého obsahu souboru do jiného

Víme, jak zkopírovat jeden řádek. A co celý obsah souboru? I to je možné. Řekněme, že chcete zkopírovat celý obsah souboru1.txt do souboru2.txt.

Chcete-li tak učinit, nejprve otevřete soubor 2.txt:

$ vim file2.txt

Pokud jsou soubory již načteny, můžete přepnout na soubor2.txt zadáním:

:buffer 2

Přesuňte kurzor na místo, kam chcete zkopírovat obsah souboru1.txt. Chci zkopírovat obsah souboru1.txt za řádek5 v souboru2.txt, takže jsem přesunul kurzor na řádek 5. Poté zadejte následující příkaz a stiskněte klávesu ENTER:

:r file1.txt

Kopírování celého obsahu souboru do jiného souboru

Tady, r znamená číst .

Nyní uvidíte, že obsah souboru1.txt je vložen za řádek5 v souboru2.txt.

line1
line2
line3
line4
line5
ostechnix
open source
technology
linux
unix

Zkopírování celého obsahu souboru do jiného souboru pomocí Vim

Chcete-li uložit změny do aktuálního souboru, zadejte:

ZZ

Chcete-li uložit všechny změny ve všech načtených souborech a ukončit editor vim, zadejte:

:wq

Metoda 2

Další metodou, jak otevřít více souborů najednou, je použití -o nebo -O příznaky.

Chcete-li otevřít více souborů v horizontálních oknech, spusťte:

$ vim -o file1.txt file2.txt

Otevřete více souborů najednou ve Vim

Chcete-li přepínat mezi okny, stiskněte CTRL+w w (tj. stiskněte CTRL+w a znovu stiskněte w ). Nebo použijte následující zkratky pro pohyb mezi okny.

  • CTRL+w k - horní okno
  • CTRL+w j - spodní okno

Chcete-li otevřít více souborů ve svislých oknech, spusťte:

$ vim -O file1.txt file2.txt file3.txt

Otevřete více souborů ve vertikálních oknech ve Vimu

Chcete-li přepínat mezi okny, stiskněte CTRL+w w (tj. stiskněte CTRL+w a znovu stiskněte w ). Nebo použijte následující zkratky pro pohyb mezi okny.

  • CTRL+w l - levé okno
  • CTRL-w h - pravé okno

Vše ostatní je stejné, jak je popsáno v metodě 1.

Chcete-li například zobrazit aktuálně načtené soubory, spusťte:

:buffers

Přepínání mezi soubory:

:buffer 1

Chcete-li otevřít další soubor, zadejte:

:e file3.txt

Chcete-li zkopírovat celý obsah souboru do jiného:

:r file1.txt

Jediný rozdíl v metodě 2 je, jakmile uložíte změny do aktuálního souboru pomocí ZZ , soubor se automaticky zavře. Také musíte zavřít soubory jeden po druhém zadáním :wq . Pokud byste však při psaní :wq postupovali podle metody 1 všechny změny budou uloženy do všech souborů a všechny soubory budou najednou uzavřeny.

Další podrobnosti naleznete na manuálových stránkách.

$ man vim

Doporučené čtení:

  • Jak komentovat více řádků najednou v editoru Vim
  • Jak spravovat pluginy Vim pomocí Vundle v systému Linux
  • Jak používat funkci kontroly pravopisu v textovém editoru Vim

Nyní víte, jak upravit více souborů pomocí editoru vim v Linuxu. Jak vidíte, úprava více souborů není tak obtížná. Editor Vim má výkonnější funkce.

Další tipy Vim napíšeme v příštích dnech. Zůstaňte naladěni!


Linux
  1. Jak nakonfiguruji Vim jako svůj výchozí editor v Linuxu

  2. Jak upravovat více souborů a přepínat mezi soubory ve VIM pomocí vyrovnávacích pamětí

  3. Jak přejmenovat více souborů pomocí funkce Najít?

  1. Vim:Jak otevřít více souborů na různých kartách?

  2. Jak kopírovat více souborů současně pomocí scp

  3. Jak mohu upravit soubor, pokud neexistuje vi, vim, joe atd.?

  1. Jak komprimovat více souborů v systému Linux

  2. Jak přejmenovat více souborů dohromady v Linuxu pomocí 3 metod

  3. Jak přidat příkaz do editoru vim?