Подтвердить что ты не робот

Окно закрытия Vim без закрытия буфера

Как закрыть окно или отключить его, не удаляя буфер?

4b9b3361

Ответ 1

Если вы хотите отредактировать другой буфер в окне, просто используйте :edit/:buf. Текущий буфер будет заменен и останется в списке буферов (т.е. Отображается в :ls).

Если вы хотите закрыть разделение окон, используйте :close. Команда :quit также будет работать, но имеет побочный эффект закрытия Vim, когда это последнее окно.

Чтобы оставить буферы с изменениями, вам нужно

:set hidden

Если вы знаете, как Vim работает с буферами, это рекомендуемая опция, которую установили многие пользователи.

Ответ 2

Окно - это окно просмотра в буфере. В vim для управления окнами это CTRL + w ведущая команда, с которой вы можете следовать несколькими параметрами (выделены жирным шрифтом, которые отвечают на ваш вопрос):

CTRL + w, v: открывает новый вертикальный раскол

CTRL + w, c: закрывает окно, но сохраняет буфер

CTRL + w, o: закрывает другие окна, сохраняет только активное окно

CTRL + w, right arrow: перемещает курсор в окно справа

CTRL + w, r: перемещает текущее окно вправо

CTRL + w, =: Делает все расколы равным размером

Затем вам нужно переключить буферы в окнах:

:ls перечислены все открытые буферы

:b5 переключается на ваш 5-й буфер

Наконец, чтобы открыть все буферы в вертикальном разрезе, используйте: :vertical sball. Очень полезно, когда вы открываете несколько файлов в качестве буферов после grep:

grep -rno --exclude-dir={dir1,dir2,dir3} "searchterm" *
vim $(!! -l)

Для получения дополнительной информации см. документ: vimdoc.sourceforge.net

Ответ 3

Окно Vim закрывается с помощью :q.

Однако, если у вас нет другого окна, оно выйдет из Vim. Если у вас есть другое окно для переключения, только текущее окно закрывается, и буфер остается открытым. Возможно, вам понадобится set hidden.

Чтобы закрыть буфер, вам нужно сделать :bdelete.

Вы можете проверить, открыт ли ваш буфер или нет, используя :buffers.