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