Як я можу максимально збільшити розділене вікно?


110

Закликаючи :helpVim, я отримав сторінку довідника з розділеним вікном. Я хочу максимально збільшити вікно довідки та закрити інше вікно.

Як я можу це зробити? Яка команда Vim для цього?

Відповіді:


88

С : help [topic] ви відкриєте тему, яка вас цікавить.
Ctrl-Wo мінімізує інші вікна (залишаючи відкритим / максимальним лише вікно довідки).
(Ctrl-Wo означає утримувати Ctrl, натискаючи W, а потім o)


39
або,: тільки зробить роботу.
шалено

14
Як я можу повернутися до файлу редагування, повернувшись до посібника, виконавши CTRL + W o?
шалено

3
@guru: C-w, ^, :buf OtherFile.txt, і :sbuf Otherfile.txtт.д. (див довідку wincmd, switchbufдля більш докладної інформації). Прикольним є те, що моєї (ІМХО) правильної відповіді ще не було надано ...
вересень

2
@ldigas: така (дивна) думка. Якщо ви не цитуєте авторитетне джерело, я дійсно вважаю це своїм особистим уподобанням. Зазвичай я їх не використовую, але нещодавно я виявив, що я використовую їх для таких відрізків (максимізація тимчасового буфера; тим самим роблячи силові матеріали, як багаторазове перемикання бічних сторін, за один сеанс vim). Вкладки - це також чудо зручності використання gvim --remote. Я завжди використовую, se guioptions=agimхоча я віддаю перевагу консольному рендеруванню вкладок.
вересень

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

133

Ви можете використовувати Ctrl+WT( це капіталT ) для переміщення будь-якого відкритого вікна на власну вкладку.

Як зазначають інші Ctrl+W_/, Ctrl+W|щоб досягти максимальної можливості в межах поточної компоновки вкладок / вікон (з дотриманням параметрів мінімальної висоти / ширини для різних інших вікон).

( Ctrl+W=змінює розмір усіх вікон до однакового розміру з дотриманням параметрів мінімальної висоти / ширини)

Редагувати до коментаря

  1. start vim (наприклад gvim /tmp/test.cpp)
  2. викликати довідку :help various-motions- відкриває розділене вікно
  3. переміщення довідки на окрему вкладку максимально: C-wT
  4. насолоджуйтеся читанням прекрасного посібника :)
  5. повернути довідку на початкову вкладку:

    mAZZ<C-w>S`A
    
    • mA: встановити глобальну позначку A
    • ZZ: закрити довідковий буфер / вкладку
    • C-wS: розділити оригінальне вікно
    • `A: перехід до збереженої позначки A

Ви можете уникнути використання позначки для звичайних буферів, які не допомагають. Повідомте мене, якщо вам цікаво.


4
Отримавши вкладку CTRL + WT, як я можу повернутися до початкових розділених вікон?
шалено

2
@guru: просто перемикати вкладки , як завжди (використання Ctrl-PgUp, Ctrl-PgDownабо :tabnext, :tabprev). Для того, щоб закрити нове (наприклад , довідку) вкладки, використання ZZ, Ctrl-W, C, :q, :clo, :tabcloseабо будь-який інший спосіб , яким Ви зазвичай закриваються вікна / вкладки
sehe

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

Питання редагування за загальною процедурою. ( Я хотів би додати , що тон ваших коментарів можна зустріти досить недружелюбно У писемній мові. "No, that was not the question"Може звучати як догана , я впевнений , що ви не мали в виду це погано. )
sehe

@guru: відповідь оновлюється. Це було трохи складніше, ніж очікувалося, оскільки довідкові буфери спеціальні (і ви не можете використовувати так, :sbufяк я б хотів). Сподіваюся , що це допомагає
sehe

53

Ви можете розширити вікно до максимального розміру за допомогою Ctrl+W_(підкреслення). Кінцевий розмір розгорнутого вікна буде обмежений значенням winminheightпараметра. Коли ви закриєте довідкове вікно, попередні вікна будуть відновлені до колишніх розмірів.


19
Ctrl+W o закриває інші вікна, тож їх немає. Тому я і використовую Ctrl+W _.
Грег Х'югілл

2
Як я можу отримати оригінальні два розділених вікна з файлом редагування та за допомогою посібника?
шалено

3
Ctrl+W =Команда змінює розмір вікна , щоб вони все приблизно однакового розміру.
Грег Х'югілл

14
Для вертикальних розщелів вам потрібно скористатися Ctrl+W |.
Ахал Дейв

2
будь-яким загубленим душам, які трапляються в цій темі ... щоб повернутися до розділених поглядів, використовуйте ctrl+w = // завдяки цьому всі вікна однакового розміру
duggi

19

Я вважаю за краще використовувати вкладки для цього. Використовуйте

:tabedit %

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

:tabclose

Я вважаю це ідеальним рішенням, оскільки це працює разом із :cwплагіном Tagbar. Взято з: vim.wikia


13

Мені подобається використовувати 'M' для максимізації, а 'm' для мінімізації.

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

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

Причиною nnoremap є те, що я не переймаюся рекурсивним картографуванням, але просто карта також повинна працювати.


1
Якщо ви користуєтесь nnoremap <C-W>M <C-W>\|<C-W>_(без пробілу після |), курсор не переміщуватиметься на 1 на кожній максимізації.
rsanden

1
Мені це подобається за допомогою зворотної косої риски ( nnoremap <C-W>\ <C-W>\|<C-W>_). Він відчуває себе природно з прив'язками за замовчуванням |, _і =.
rsanden

6

Ви можете отримати довідкове вікно в повному розмірі, не закриваючи / змінюючи розміри інших вікон, використовуючи

tab help {topic}

Це відкриє довідкове вікно на новій вкладці, інші вікна будуть залишені як є (дійсно змінити розмір, щоб можна було відобразити табло, але це лише один додатковий рядок вище). Ви можете закрити допомогу, як завжди: принаймні, :bw<CR>і <C-w>cпрацюйте для мене, закриваючи нову вкладку.




2

Для того, щоб отримати тільки допомога вгору, потім закрийте інше вікно, зробіть наступне: :helpCTRL-WCTRL-W:close. Тоді вам допоможе лише допомога.


1

у своєму .vimrc, просто місце

nmap - :res<CR>:vertical res<CR>$

Коли ви хочете максимально збільшити поточне вікно, просто натисніть - в командному режимі. Натисніть =, коли ви хочете відновити останній стан декількох вікон


2
Добре, але = не відновлює "останній статус"
майкінетор

1

Якимось чином плагін ZoomWin взагалі не працював для мене, я тепер бачу, що є інші плагіни, але я вже написав це і дає мені точний ефект, який я хотів (з незначною вигадкою, детально описаною нижче) :

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

Використовуйте відображену клавішу (Leader та + в моєму випадку) для перемикання між максимальним / попереднім макетом. Якщо ви перейдете на інший розділ на тій же вкладці, максимізація вимикається.

Якщо ви зміните вкладки, розбиття залишається максимальним, хоча якимось чином більше не покриватиме повну ширину, при цьому ширина мінімізована вікнами повертає назад 4 колонки чи щось. У будь-якому випадку, це працює для мене навіть прийнятно, навіть якщо ця незначна примха.

редагувати: якимось чином це працює нормально, мабуть, якимось чином заплутався.

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