Поиск по сайту:

Как редактировать несколько файлов с помощью редактора Vim

Иногда вы попадаете в ситуацию, когда хотите внести изменения в несколько файлов. Или вы можете скопировать содержимое одного файла в другой. Если вы находитесь в режиме графического интерфейса, вы можете просто открыть файлы в любом графическом текстовом редакторе, например gedit, и использовать CTRL+C и CTRL+V для копирования/вставки содержимого. В режиме CLI вы не можете использовать такие редакторы. Не беспокойся! Там, где есть редактор vim, есть и способ! В этом уроке мы научимся редактировать несколько файлов одновременно с помощью редактора Vim. Поверьте мне, это очень интересная функция Vim!

Установите Vim в Linux

Редактор Vim доступен в официальных репозиториях большинства дистрибутивов Linux. Таким образом, вы можете установить его, используя менеджер пакетов по умолчанию.

Например, в Arch Linux и его вариантах вы можете установить его с помощью команды:

sudo pacman -S vim

В Debian, Ubuntu:

sudo apt-get install vim

В RHEL, CentOS:

sudo yum install vim

В Fedora:

sudo dnf install vim

В openSUSE:

sudo zypper install vim

Редактируйте несколько файлов одновременно с помощью редактора Vim в Linux.

Может быть много способов редактировать кратные файлы с помощью редактора Vim. Я знаю два метода.

Способ 1

У меня есть два файла, а именно file1.txt и file2.txt, с кучей случайных слов. Давайте посмотрим на них.

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

Теперь давайте отредактируем эти два файла одновременно с помощью редактора Vim. Для этого запустите:

vim file1.txt file2.txt

Vim будет отображать содержимое файлов по порядку. Сначала будет показано содержимое первого файла, затем второго файла и так далее.

Редактирование нескольких файлов с помощью редактора Vim

Переключение между файлами

Чтобы перейти к следующему файлу, введите:

:n

Переключение между файлами в редакторе Vim

Чтобы вернуться к предыдущему файлу, введите:

:N

Здесь N — капитал (введите SHIFT+n).

Начните редактировать файлы так же, как вы это делаете в редакторе Vim. Нажмите «i», чтобы переключиться в интерактивный режим и изменить содержимое по своему вкусу. После этого нажмите ESC, чтобы вернуться в обычный режим.

Vim не позволит вам перейти к следующему файлу, если есть несохраненные изменения. Чтобы сохранить изменения в текущем файле, введите:

ZZ

Обратите внимание, что это двойные заглавные буквы ZZ (SHIFT+zz).

Чтобы отказаться от изменений и перейти к предыдущему файлу, введите:

:N!

Чтобы просмотреть файлы, которые в данный момент редактируются, введите:

:buffers

Просмотр файлов в буфере в VIm

Внизу вы увидите список загруженных файлов.

Список файлов в буфере в Vim

Чтобы переключиться на следующий файл, введите :buffer, а затем номер буфера. Например, чтобы переключиться на первый файл, введите:

:buffer 1

Или просто сделайте:

:b 1

Переключиться на следующий файл в Vim

Просто запомните эти команды, чтобы легко переключаться между буферами:

: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.

Открытие дополнительных файлов для редактирования

В настоящее время мы редактируем два файла, а именно file1.txt, file2.txt. Возможно, вы захотите открыть для редактирования другой файл с именем file3.txt. Что вы будете делать? Это просто! Просто введите :e, а затем имя файла, как показано ниже.

:e file3.txt

Откройте дополнительные файлы для редактирования в Vim.

Теперь вы можете редактировать файл file3.txt.

Чтобы просмотреть, сколько файлов редактируется в данный момент, введите:

:buffers

Просмотр всех файлов в буферах в Vim

Обратите внимание, что вы не можете переключаться между открытыми файлами с помощью :e, используя либо :n, либо :N. Чтобы переключиться на другой файл, введите :buffer, а затем номер файлового буфера.

Копирование содержимого одного файла в другой

Вы знаете, как открывать и редактировать несколько файлов одновременно. Иногда вам может понадобиться скопировать содержимое одного файла в другой. Это тоже возможно. Переключитесь на файл по вашему выбору. Например, предположим, что вы хотите скопировать содержимое файла file1.txt в файл file2.txt.

Для этого сначала переключитесь на файл file1.txt:

:buffer 1

Поместите курсор перемещения перед строкой, которую необходимо скопировать, и введите yy, чтобы скопировать (скопировать) строку. Затем перейдите к файлу file2.txt:

:buffer 2

Поместите курсор мыши туда, куда вы хотите вставить скопированные строки из файла file1.txt, и введите p. Например, вы хотите вставить скопированную строку между строкой 2 и строкой 3. Для этого поместите курсор мыши перед строкой и введите p.

Пример вывода:

line1
line2
ostechnix
line3
line4
line5

Копирование содержимого одного файла в другой с помощью Vim

Чтобы сохранить изменения, внесенные в текущий файл, введите:

ZZ

Еще раз обратите внимание, что это двойная заглавная буква ZZ (SHIFT+z).

Сохранить изменения во всех файлах и выйти из редактора vim. тип:

:wq

Аналогично вы можете скопировать любую строку из любого файла в другие файлы.

Копирование всего содержимого файла в другой

Мы знаем, как скопировать одну строку. А как насчет всего содержимого файла? Это тоже возможно. Допустим, вы хотите скопировать все содержимое файла file1.txt в файл file2.txt.

Для этого сначала откройте файл file2.txt:

vim file2.txt

Если файлы уже загружены, вы можете переключиться на file2.txt, набрав:

:buffer 2

Переместите курсор в то место, куда вы хотели скопировать содержимое файла file1.txt. Я хочу скопировать содержимое файла file1.txt после строки 5 в файл file2.txt, поэтому я переместил курсор на строку 5. Затем введите следующую команду и нажмите клавишу ENTER:

:r file1.txt

Копирование всего содержимого файла в другой файл

Здесь r означает читать.

Теперь вы увидите, что содержимое файла file1.txt вставлено после строки 5 в файл file2.txt.

line1
line2
line3
line4
line5
ostechnix
open source
technology
linux
unix

Копирование всего содержимого файла в другой файл с помощью Vim

Чтобы сохранить изменения в текущем файле, введите:

ZZ

Чтобы сохранить все изменения во всех загруженных файлах и выйти из редактора vim, введите:

:wq

Способ 2

Другой способ открыть несколько файлов одновременно — использовать флаги -o или -O.

Чтобы открыть несколько файлов в горизонтальных окнах, запустите:

vim -o file1.txt file2.txt

Откройте несколько файлов одновременно в Vim

Для переключения между окнами нажмите CTRL-w (т. е. нажмите CTRL+w и снова нажмите w). Или используйте следующие сочетания клавиш для перемещения между окнами.

  • CTRL-w k — верхнее окно
  • CTRL-w j — нижнее окно

Чтобы открыть несколько файлов в вертикальных окнах, запустите:

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

Откройте несколько файлов в вертикальных окнах в Vim

Для переключения между окнами нажмите CTRL-w (т. е. нажмите CTRL+w и снова нажмите w). Или используйте следующие сочетания клавиш для перемещения между окнами.

  • CTRL-w l — левое окно
  • CTRL-w h – правое окно

Все остальное аналогично описанному в способе 1.

Например, чтобы просмотреть список загруженных в данный момент файлов, выполните:

:buffers

Для переключения между файлами:

:buffer 1

Чтобы открыть дополнительный файл, введите:

:e file3.txt

Чтобы скопировать все содержимое файла в другой:

:r file1.txt

Единственное отличие метода 2 заключается в том, что после сохранения изменений в текущем файле с помощью ZZ файл автоматически закроется. Кроме того, вам необходимо закрыть файлы один за другим, набрав :wq. Но если бы вы следовали методу 1, то при вводе :wq все изменения будут сохранены во всех файлах, и все файлы будут закрыты сразу.

Более подробную информацию можно найти на страницах руководства.

man vim

Рекомендуем прочитать:

  • Как закомментировать несколько строк одновременно в редакторе Vim
  • Как управлять плагинами Vim с помощью Vundle в Linux
  • Как использовать функцию проверки орфографии в текстовом редакторе Vim

Теперь вы знаете, как редактировать несколько файлов с помощью редактора vim в Linux. Как видите, редактировать несколько файлов не так уж и сложно. Редактор Vim имеет более мощные функции.

В ближайшие дни мы напишем больше советов по Vim. Следите за обновлениями!

Статьи по данной тематике