Я обычно открываю несколько окон и держу открытыми некоторые буферы. Так как мой МО в исследовании буфера должен использовать быстрые ярлыки для :bn
и :bp
, я хочу закрыть ненужные буферы, чтобы отвлекать мой буферный серфинг.
Но боль заключается в том, что выдача :bd
и :bw
приводит к закрытию окна, если у меня открыто несколько окон. Как закрыть (удалить) буфер и оставить окна нетронутыми?
Решение, вдохновленное ответом @ peth
:command! BW :bn|:bd#
Это просто. Не работает только с одним открытым буфером (я получаю различное поведение в зависимости от того, как я открываю файлы), но это не большая проблема. :)
Я немного облажался и наконец придумал:
Вот версия копирования / вставки для сопоставления клавиш:
Или команда для вашего .vimrc (вызов с: Bd):
Я проверил его достаточно, и он работает последовательно в различных условиях. При использовании в последнем буфере он оставит новый пустой буфер.
источник
Окно - это окно просмотра в буфер. (См
:help window
.). У вас не может быть окна без связанного буфера. Вы можете использовать команду, например,:enew
чтобы заменить текущее содержимое окна пустым буфером.источник
bufkill.vim плагин работает хорошо. Мне нравится использовать его с vim-command-w для дополнительной функциональности и тонкостей (например, он закрывает разделение, если это последний буфер, или закрывает vim, если это последний буфер / разделение).
источник
Вот еще одно решение:
Нажав Ctrl + W, вы тихо создадите новое окно и закроете старое окно. Курсор оставлен в новом окне. Есть ряд положительных эффектов:
источник
Я думаю, проблема в том, что большинство людей ожидают, что vim buffer и window будут чем-то, чем они не являются.
Люди склонны рассматривать окно vim как отдельный процесс, который имеет свой список буферов, но, к сожалению, это не так. Окно vim - это только окно просмотра его буферов.
Поэтому возникает много проблем, таких как ваша проблема, или проблема, связанная с тем, что разные окна совместно используют один и тот же список буферов, поэтому вы не можете редактировать буфер 1 в окне A и позволять окну B игнорировать буфер 1 в своем списке буферов.
Мое решение состоит в том, чтобы открыть два экземпляра vim, чтобы вы могли иметь желаемое окно vim. Лучше всего работает на тайлинг WM.
источник
Обычно я просто открываю меню в любом буфере. Это откроет меню на левой панели, и курсор будет активен там. Поэтому я просто переключаюсь обратно в активный буфер и удаляю буфер.
После этого я могу открыть другой файл из меню.
Мои шаги это:
источник