2009-11-18 4 views
115

Есть ли способ сделать существующее окно (разделение) и поместить его в новую вкладку?Как перенести существующее окно на новую вкладку?

+0

Если вы когда-либо вернитесь к этому вопросу, пожалуйста, измените принятый ответ, DrAI один гораздо правильнее, чем тот, который был у Миколы. – gbr

ответ

214

так же как и предполагалось ранее :tabedit подход, более быстрый способ сделать это (в обычном режиме), чтобы ударить Ctrl - WСдвиг - T. Ctrl-W является общим префиксом для большого числа команд обработки окон.

См:

:help Ctrl-W_T 
:help Ctrl-W 
+3

Обратите внимание, что' help Ctrl-W_T' переносит вас в запись справки 'Ctrl-W_t' (нижний регистр), однако дальше по странице находится' Ctrl- W_T' (с капиталом T), говоря «Переместить текущее окно на новую вкладку ....» – Rabarberski

+0

@DrAl и как мы перемещаем новое окно вкладок для разделения окна? –

+0

@RamizUddin Нет простого способа сделать это (поскольку не очевидно, какое окно вы хотите разбить). Тем не менее, вы можете узнать номер буфера для вашей текущей закладки с помощью:: echo bufnr ("") 'и используя этот номер, вы можете разделить окно на': sp # 3' или ': sb 3' (при условии, что число было 3). Вы можете придумать некоторые сопоставления или функции, чтобы упростить это. – DrAl

97

Попробуйте

:tabedit %<CR> 
+0

Просто любопытно, почему вы включили . – Swiss

+13

По той же причине я включил «:». Это полная комбинация комбинаций vim в обычном режиме, и вы можете использовать ее в «nnoremap» и в «nmap» –

+0

Это не работало для меня. Он открывает новую вкладку на секунду, но потом закрывает ее по какой-то причине. Должна быть какая-то проблема с настройкой или плагином, который у меня есть. Однако решение DrAl было выполнено. –

0

Я использую this, который дает вам две функции, которые могут быть связаны с парой горячих клавиш или команд, и который работает довольно интуитивно. Я уверен, что он предлагает поведение еще более дружелюбно, чем, например, Ctrl-W_T.

Например, если несколько окон открыты на нескольких вкладках, эта функция позволяет вам специально перемещать текущее окно на следующую или предыдущую вкладку и перемещать что-либо до первой вкладки или после последней вкладки , то он превращается в совершенно новую вкладку.

Это означает, что если у вас есть две вкладки, каждая из которых имеет одно окно, то перемещение окна первой вкладки вправо объединяет его со второй вкладкой, чтобы получить одну единственную вкладку с двумя окнами. Я не знаю, как это свершилось для этой операции с использованием традиционных команд.

Это означает, что одна пара команд перемещения позволяет перемещать окна вокруг вкладок, разбивая окна на вкладки (путем нажатия окна до конца) и соединяя отдельные вкладки с окнами внутри одной вкладки , в значительной степени все, что вы могли бы захотеть, за исключением позиционной компоновки (которая является отдельной темой и которая прекрасно работает для команд Ctrl-W + Shift-HJKL).

2

Это перемещает новый буфер на новой вкладке и восстанавливает предыдущий буфер на текущей вкладке. Я использую это после перетаскивания новый файл в мой Gvim

:sbp |wincmd p| wincmd T 

Вы можете отобразить его, как, что Ctrl-Backspace

:nnoremap <C-BS> :sbp<bar>wincmd p<bar>wincmd T<CR> 

выполняет особенно хорошо с

:set switchbuf=usetab 
Смежные вопросы