Я разделил мои окна по горизонтали. Теперь, как я могу вернуться в нормальный режим, то есть без разделения окна только на одно окно, не отменяя все мои открытые окна. У меня 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и не закроет другое окно. Например, я обычно создаю новое окно и читаю в него файл, из которого я хотел бы вырвать. В этом случае Vim считает, что в другом окне есть неписанные изменения. В таком случае используйте :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разрешаю повторное присоединение со всеми разбиениями без изменений.