Как закрыть все окна только на текущей вкладке vim
Я знаю, что :qa
закрывает все буферы и окна и выходит из vim. Также ясно, что я мог бы использовать :q
бросить одно окно/разделить в данном разделе. Но рассмотрим случай, когда у меня есть три окна на текущей вкладке и куча смежных открытых вкладок. Я хочу закрыть три окна на текущей вкладке, но не выходить из vim или других смежных вкладок.
Как мне это сделать? Я просмотрел файл справки vim, но, похоже, нет прямого варианта. Я представьте, что можно получить такую функциональность с помощью vimscript, но я хочу быть уверенным, прежде чем делать вывод, что это единственный вариант.
Если vim не поддерживает его напрямую, и кто-то был достаточно удивительным, чтобы написать плагин для него, я хотел бы знать об этом.
3 ответов
Я также узнал, что эта команда работает. Страница справки по адресу help tabpage
было весьма полезно.
:tabc
Как указал @glts в комментарии, мне нужно было привести терминологию vim в порядок, прежде чем я смогу найти ответ.
существующие ответы, которые предлагают :tabc[lose]
правильные. Однако есть одна ситуация, в которой может быть полезен другой ответ.
в случае, если вы хотите закрыть окна в текущей вкладке, чтобы уменьшить количество вещей, которые вы перед открытием новой вкладки и потянув некоторые новые файлы в него,tabclose
опция все еще работает; кратко, вы бы сделали :tabc|tabe
. Тем не менее, пурист Vim во мне не может не указать, что вы могли бы сэкономить три нажатия клавиш путем ввода :on|ene
вместо этого, что сокращенно от :only | enew
или "закройте все окна, кроме этого, на текущей вкладке; теперь откройте новый неназванный файл в этом окне."И если вы хотите заменить текущие окна именованным файлом, эта идиома на два нажатия клавиш короче другой, в общей сложности пять::on|e foo.txt
и :tabc|tabe foo.txt
.
таким образом, в то время как обычно правильный ответ на вопрос является :tabclose
команда, есть случаи, в которых :on|e
или :on|ene
более полезный.