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

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


vim:interface

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
vim:interface [2022/07/26 18:51] – создано so_v_avim:interface [2026/09/01 11:48] (текущий) – so_v_a
Строка 1: Строка 1:
-# +<!DOCTYPE markdown> 
 + 
 +# Освоение интерфейса 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** — закроет текущую вкладку 
 + 
 +[[0_content|Оглавление]] 
/var/www/html/dokuwiki/data/attic/vim/interface.1658861495.txt.gz · Последнее изменение: (внешнее изменение)