Есть ли способ взять существующее окно (разделить) и поместить его в новую вкладку?
Есть ли способ взять существующее окно (разделить) и поместить его в новую вкладку?
Ответы:
Как и ранее предложенный :tabedit
подход, более быстрый способ сделать это - (в обычном режиме) нажать Ctrl- W Shift- T. Ctrl-W - это общий префикс для широкого спектра команд управления окнами.
Видеть:
:help Ctrl-W_T
:help Ctrl-W
help Ctrl-W_T
вы переходите к справочной записи Ctrl-W_t
(в нижнем регистре), однако дальше по странице находится Ctrl-W_T
запись (с заглавной буквой T), в которой говорится «Переместить текущее окно на новую вкладку…»
:echo bufnr("")
помощью и с помощью этого номера вы можете разделить окно с помощью :sp #3
или :sb 3
(при условии, что число было 3). Вы можете придумать некоторые сопоставления или функции, чтобы упростить это.
:sb
сработало бы, но в последних версиях Vim (> = 7.3) вы также можете использовать постоянную отмену, установив, set undodir=/path/to/dir
где / path / to / dir - это каталог, который вы используете. создан для этой цели, а затем set undofile
. Это позволит вам выйти из vim, а затем перезапустить и сохранить состояние отмены / повтора.
Пытаться
:tabedit %<CR>
C-w T
более быстрый способ сделать то же самое
Это перемещает самый новый буфер в новую вкладку и восстанавливает предыдущий буфер в текущей вкладке. Я использую это после перетаскивания нового файла в мой Gvim
:sbp |wincmd p| wincmd T
Вы можете сопоставить это так с Ctrl-Backspace
:nnoremap <C-BS> :sbp<bar>wincmd p<bar>wincmd T<CR>
это особенно хорошо работает с
:set switchbuf=usetab
Я использовал это, которое дает вам две функции, которые могут быть связаны с парой горячих клавиш или команд, и которые работают довольно интуитивно. Я уверен, что он предлагает поведение даже более дружелюбное, чем, например Ctrl-W_T
.
Например, когда несколько окон открыты на нескольких вкладках, использование этой функции позволяет вам специально переместить текущее окно на следующую или предыдущую вкладку, а если вы перемещаете что-либо до первой вкладки или после последней вкладки, то она поворачивается в совершенно новую вкладку.
Это означает, что если у вас есть 2 вкладки, каждая из которых имеет одно окно, то перемещение окна первой вкладки вправо объединит его со второй вкладкой, чтобы получить одну вкладку с двумя окнами. Я не знаю, насколько запутанной является эта операция для достижения с помощью традиционных команд.
Это означает, что одна пара команд перемещения позволяет как перемещать окна вокруг вкладок, разбивать окна на вкладки (выдвигая окно до конца) и объединять отдельные вкладки в окна внутри одной вкладки, почти все Вы могли бы хотеть, кроме позиционного расположения (это отдельная тема и для которой хорошо работают встроенные команды Ctrl-W
+ Shift-HJKL
).