Окно закрытия Vim без закрытия буфера
Как закрыть окно или отключить его, не удаляя буфер?
Ответы
Ответ 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
.