Я розділив вікна по горизонталі. Тепер, як я можу повернутися до звичайного режиму, тобто не розділене вікно лише одне вікно, не скасовуючи всі мої відкриті вікна. У мене 5 і не хочу "виходити", просто хочу вийти з розділеного вікна.
Я розділив вікна по горизонталі. Тепер, як я можу повернутися до звичайного режиму, тобто не розділене вікно лише одне вікно, не скасовуючи всі мої відкриті вікна. У мене 5 і не хочу "виходити", просто хочу вийти з розділеного вікна.
Відповіді:
Натисніть Control+ w, а потім натисніть, qщоб закрити кожне вікно за раз.
Оновлення : також розгляньте відповідь на eckes, яка може бути кориснішою для вас, включаючи :on
(читайте нижче), якщо ви не хочете робити це по одному вікну за раз.
hidden
Здається, налаштування допомагає. Хоча, що я мав на увазі, як ти додаєш! до ярлика? Це "Cw! Q", "Cw q!", "! Cw q", "C-! W q"? Я думаю, що жоден із них, але я вже забув, як створити нові буфери, тому це вправа для читача.
Щоб закрити всі розколи, я зазвичай помістити курсор в вікні , яке повинно стати на -ly видимого , а потім зробити :on
що робить поточне вікно в на -ly видимого вікна. Приємно мнемонічно пам’ятати.
Правка: :help :on
показала мені, що ці команди однакові:
Кожне з цих чотирьох закриває всі вікна, крім активного.
:on
відповість E445: Other window contains changes
і не закриє інше вікно. Наприклад, я зазвичай створюю нове вікно і зачитую в ньому файл, з якого я хотів би вирватися. У цьому випадку Вім вважає, що в іншому вікні є неписані зміни. У такому випадку використовуйте :on!
для примусового закриття.
щоб закрити всі вікна, окрім поточного:
CTRL+ w,o
Тобто спочатку CTRL+, wа потім o.
CTRL+W o
випадково скасувати введений текст.
Дві альтернативи для закриття поточного вікна є ZZ
і ZQ
, відповідно, зберігають, а не зберігають зміни у відображеному буфері.
Z
бо я німець. (Спойлер: Розкладка клавіатури, якщо ви часто перемикаєтесь між налаштуваннями DE / EN)
Команда: сховати приховає поточне зосереджене вікно. Я думаю, що це функціонал, який ви шукаєте.
Для навігації між вікнами введіть Ctrl + w, а потім клавішу навігації (h, j, k, l або клавіші зі стрілками)
Для отримання додаткової інформації перспективи :help window
і :help hide
в Vim.
З :help opening-window
(пошук "Закриття вікна" - /Closing a window
)
:q[uit]
закрийте поточне вікно та буфер. Якщо це останнє вікно, воно також вийде з vim:bd[elete]
вивантажте поточний буфер і закрийте поточне вікно:qa[all]
або :quita[ll]
закриє всі буфери та вікна та вихід із vim ( :qa!
примусово без збереження змін):clo[se]
закрийте поточне вікно, але тримайте буфер відкритим. Якщо є лише одне вікно, ця команда не працює:hid[e]
сховати буфер у поточному вікні (Детальніше на :help hidden
):on[ly]
закрийте всі інші вікна, але залиште всі буфери відкритимиЯ виявив, що ctrl+ wдо вікна, яке ви хочете закрити, тоді просто робіть :q. Це працює для мене.
^W^W:q
як можливе рішення, тому позбудьтеся розколу. Зауважте, що, ^W to the window you want to close
мабуть, має на увазі багаторазове використання ^W^W
для переходу до вікна, яке ви хочете закрити ..
Я добре розумію, що ви маєте намір, я також використовую буфери виключно, а іноді і розбиваю, якщо потрібно.
нижче - уривок мого .vimrc
" disable macro, since not used in 90+% use cases
map q <Nop>
" q, close/hide current window, or quit vim if no other window
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR>
" qo, close all other window -- 'o' stands for 'only'
nnoremap qo :only<CR>
set hidden
set timeout
set timeoutlen=200 " let vim wait less for your typing!
Що досить добре відповідає моєму робочому процесу
Якщо
q
було натиснуто
- приховати поточне вікно, якщо відкрито кілька вікон, інакше спробуйте вийти з vim.
якщо
qo
його натискали,
- закрити всі інші вікна, без ефекту, якщо тільки одне вікно.
Звичайно, ви можете перетворити цю безладну частину у функцію , наприклад
func! Hide_cur_window_or_quit_vim()
if winnr('$') > 1
hide
else
silent! exec 'q'
endif
endfunc
nnoremap q :call Hide_cur_window_or_quit_vim()<CR>
Sidenote : Я перепризначити q
, так як я не використовую макрос для редагування, замість того, щоб використовувати :s
, :g
, :v
і зовнішні команди обробки тексту , якщо це необхідно, наприклад, :'{,'}!awk 'some_programm'
або використання :norm! normal-command-here
.
Гаразд, я просто відключився і приєднався до екранного сеансу, і я повернувся до звичайного екрану, якого я хотів
vim
режиму розділеного вікна, це просто залишає screen
режим розділеної панелі - що можна легко помилитися, тому, можливо, теж інші. До речі, ця функція екрану мені дратує, отже, тепер я за замовчуванням tmux
дає змогу повторного вкладення з усіма розбиттями.