Инструменты пользователя

Инструменты сайта


vim:interface

Освоение интерфейса Vim

Изначально не очевидно, однако в одной сессии Vim можно одновременно редактировать несколько файлов. Делается это при помощи т. н. «окон» или же при помощи относительно новой возможности Vim, добавленной в 7-й версии — вкладок.

Окна

Давайте сперва рассмотрим окна. Когда вы открываете Vim для редактирования файла, вы видите одно окно с содержимым файла. Представим, что вы редактируете ну очень большой файл и вам нужно редактировать его параллельно в двух местах. Дайте команду (не забывайте нажимать Ctrl+Esc для перехода в командный режим)

:split

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

Хорошо, но как теперь переключиться обратно в предыдущее окно? Очень просто. Перейдите в командный режим, нажмите Ctrl+w и при помощи клавиш со стрелками или клавиш перемещения (h, j, k, l) выберите нужное окно, на которое хотите переключиться относительно текущего окна.

Допустим, ваша Vim-сессия разделена горизонтально на два окна. При помощи команды

Ctrl+w k

вы переключитесь на окно, расположенное выше активного, в то время как команда

Ctrl+w j

переключит вас на окно, расположенное ниже.
Двойной повтор команды Ctrl+w переключит вас на следующее окно.

Помимо переключения между окнами вы можете перемещать сами окна.

Команда

Ctrl+w r

вращает окна по часовой стрелке, а команда

Ctrl+w R

вращает окна против часовой стрелки.

Использование нескольких окон для работы с одним и тем же файлом используется сравнительно редко. Что что используется гораздо чаще, так это разделение сессии на окна при редактировании нескольких файлов.

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

Например:

:split /etc/dhcp3/dhclient.conf

Что делать, если вам понадобилось вернуться в однооконный вариант Vim-сессии? Для это вам нужно всего лишь закрыть ненужные окна традиционным способом (при помощи команды :q, :!q или :wq) или же, находясь в окне, которое хотите закрыть, дать команду

Ctrl+w c

В случае последней команды Vim не даст вам закрыть изменённый, но не сохранённый файл, что логично.

Давайте подытожим список основных команд, используемых при работе с окнами в Vim.

  • :split или Ctrl+w s — добавляет в сессию Vim горизонтальное окно
  • :vsplit или Ctrl+w v — добавляет в сессию Vim вертикально окно
  • :split filename — добавляет в сессию Vim горизонтальное окно и загружает в него filename
  • :vsplit filename — добавляет в сессию Vim вертикальное окно и загружает в него filename
  • Ctrl+w h — переключает на левое окно, относительно текущего
  • Ctrl+w l — переключает на правое окно, относительно текущего
  • Ctrl+w j — переключает на нижнее окно, относительно текущего
  • Ctrl+w k — переключает на верхнее окно, относительно текущего
  • Ctrl+w Ctrl+w — переключает на следующее окно
  • Ctrl+w r — передвигает окна по часовой стрелке
  • Ctrl+w R — передвигает окна против часовой стрелки
  • Ctrl+w c — закрывает текущее окно

И сразу ответ тем, кто спросит: «не лучше ли открыть несколько однооконных сессий вместо всей этой возни с окнами?».
Подумайте о том, как иной раз бывает утомительно редактировать несколько файлов, открытых в нескольких отдельных SSH-сессиях к серверу, особенно высоконагруженному. И потом, гораздо удобнее выполнять копирование/вставку между несколькими файлами в пределах одной сессии, когда у вас всё перед глазами и не нужно судорожно переключаться между несколькими терминалами в поисках того,что же вы собирались скопировать и откуда.

Вкладки

Со времён появления вкладок в веб-браузерах пользователи очень привыкли и активно пользуются этим механизмом. Действительно, идея отличная. Так почему бы не использовать их в Vim? Если вы часто работаете одновременно с несколькими файлами и вам не нужно видеть их все одновременно на одном экране, то использование вкладок — самое то, что вам необходимо.

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

$ vim -p filename1 filename2 filename3

Если же у вас уже имеется открытая сессия Vim, вы можете загрузить файл (или создать новый) в новой вкладкупри помощи команды:

:tabnew filename

Если вы не укажете filename, то будет открыта вкладка не связанная с именем файла и вы должны будете указать его при сохранении.

Переключение между вкладками также очень простое. Команда gt переключит вас на следующую вкладку, а команда gT — на предыдущую.

Закрывать вкладки можно несколькими способами. Первый способ — это всё то же «традиционное» закрытие при помощи команд :q, :!q или :wq. Второй способ — использование команды для закрытия текущей вкладки:

:tabc

Как и в случае с окнами, эта команда не даст вам закрыть вкладку, если файл в ней изменялся, но не был сохранён.

Давайте подытожим список команд для работы с вкладками:

  • vim -p filename1 filename2 — запустит Vim и откроет (или создаст новые) файлы filename1 и filename2 в двух вкладках
  • :tabnew — откроет пустую вкладку
  • :tabnew filename — откроет новую вкладку и загрузит (создаст новый) в ней файл filename
  • gt — переключит на следующую вкладку
  • gT — переключит на предыдущую вкладку
  • :tabc — закроет текущую вкладку

Оглавление

/var/www/html/dokuwiki/data/pages/vim/interface.txt · Последнее изменение: — so_v_a