Як перенести існуюче вікно на нову вкладку?


151

Чи є спосіб взяти наявне вікно (розділити) і помістити його на нову вкладку?


Якщо ви коли-небудь повернетесь до цього питання, будь ласка, змініть прийняту відповідь, відповідь DrAI набагато правильніше, ніж відповідь від Микола.
gbr

Відповіді:


261

Як і раніше запропонований :tabeditпідхід, більш швидкий спосіб зробити це (у звичайному режимі) натиснути Ctrl- W Shift- T. Ctrl-W - загальний префікс для найрізноманітніших команд віконних маніпуляцій.

Побачити:

:help Ctrl-W_T
:help Ctrl-W

3
Зауважте, що help Ctrl-W_Tвас переносить довідковий запис Ctrl-W_t(нижній регістр), проте далі на сторінці знаходиться Ctrl-W_Tзапис (з
великою літерою

1
@DrAl і як ми перемістимо нове вікно вкладки, щоб розділити вікно?
Раміз Уддін

@RamizUddin Немає простого способу зробити це (оскільки не очевидно, в яке вікно ви хочете розділити). Однак ви можете дізнатися номер буфера для вашої поточної сторінки вкладки за :echo bufnr("")допомогою цього номера, ви можете розділити вікно з :sp #3або :sb 3(якщо число було 3). Можливо, ви зможете розробити деякі відображення чи функції, щоб спростити це.
DrAl

1
Як перемістити буфер на нову вкладку, зберігаючи його стан скасувати / повторити. Іншими словами, я не хочу відкривати один і той же файл на новій вкладці, я хочу буквально перемістити буфер на нову вкладку, щоб історія редагування могла бути використана в новій вкладці. Якщо немає способу зробити це за замовчуванням, я можу зробити ставку, що плагін може бути зроблений, який додає новий ярлик для цього, який записує історію скасування у файл swap для нового буфера.
trusktr

2
@trusktr Я думаю, що відкриття буфера на новій вкладці з :sbбуде працювати, але з останніми версіями Vim (> = 7.3) ви також можете використовувати стійкі скасування, встановивши, set undodir=/path/to/dirде / path / to / dir - каталог, у якому ви створений з метою і потім set undofile. Це дозволить вам вийти з vim, а потім перезапустити і зберегти стан скасування / повторення.
DrAl

103

Спробуйте

:tabedit %<CR>

3
Просто цікаво, чому ви включили <CR> до цього.
Швейцарія

17
З цієї ж причини я включив ":". Це повна комбінація клавіш vim у звичайному режимі, і ви можете використовувати це в 'nnoremap' та в 'nmap'
Микола Голубєв

6
Це працює також, за винятком того, що він клонує / дублює вікно на нову вкладку, на відміну від закриття спочатку, а потім відкриття в новій вкладці. Не велике діло. Просто щось слід пам’ятати.
A-Dubb

6
Це не переміщує буфер на нову вкладку, він просто відкриє той самий файл на новій вкладці, але ви не будете мати скасувати / повторити історію тощо.
trusktr

5
C-w TШвидший спосіб зробити те ж саме
Дилантхепігуй,

3

Це переміщує найновіший буфер на новій вкладці та відновлює попередній буфер у поточній вкладці. Я використовую це після перетягування нового файлу в мій Gvim

:sbp |wincmd p| wincmd T

Ви можете зіставити це так у Ctrl-Backspace

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

вона особливо добре справляється з

:set switchbuf=usetab

0

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

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

Це означає, що якщо у вас є 2 вкладки, кожна з яких має одне вікно, то переміщення вікна першої вкладки праворуч поєднає її з другою вкладкою, щоб отримати одну єдину вкладку з двома вікнами. Я не знаю, наскільки спростована ця операція для досягнення традиційних команд.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.