Я разбил окна по горизонтали. Теперь, как я могу вернуться в нормальный режим, т.е. Не разбивать окно только на одно окно, не отменяя все мои открытые окна. У меня 5 и не хочу "уходить", просто хочу выйти из разделенного окна.
Отменить разделенное окно в Vim
Ответ 1
Нажмите Control + w, затем нажмите q, чтобы закрыть каждое окно за раз.
Обновить. Также рассмотрите ответы eckes, которые могут быть более полезными для вас, включая :on
(см. ниже), если вы не хотите делать это по одному окну за раз.
Ответ 2
Чтобы закрыть все расщепления, я обычно помещаю курсор в окно, которое должно быть на, видимым, а затем делать :on
, которое делает текущее окно насильное > видимое окно. Мне очень нравится помнить.
Изменить: :help :on
показал, что эти команды одинаковы:
Каждый из этих четырех закрывает все окна, кроме активного.
Ответ 3
чтобы закрыть все окна, но текущий:
CTRL + w, o
То есть, сначала CTRL + w, а затем o.
Ответ 4
Две альтернативы для закрытия текущего окна: ZZ
и ZQ
, которые будут соответственно сохранять и не сохранять изменения в отображаемом буфере.
Ответ 5
Команда: hide скрывает окно, сфокусированное в данный момент. Я думаю, что это функциональность, которую вы ищете.
Для перемещения между окнами типа Ctrl + w, за которым следует клавиша навигации (h, j, k, l или клавиши со стрелками)
Для получения дополнительной информации запустите :help window
и :help hide
в vim.
Ответ 6
Как и другие, прежде чем сделать это, нажмите ctrl + w, а затем o. Это будет "максимизировать" текущее окно, закрывая остальные. Если вы хотите, чтобы у вас была возможность "unmaximize", для этого есть плагин под названием ZoomWin. В противном случае вам придется воссоздать установку окна с нуля.
Ответ 7
Я нашел ctrl + w в окне, которое вы хотите закрыть, затем просто сделайте :q. Это работает для меня.
Ответ 8
Я понимаю, что вы намерены хорошо, я тоже использую буферы, а иногда и разрываю, если нужно.
ниже - выдержка моего .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
.
Ответ 9
Хорошо, я просто отсоединился и снова подключился к сеансу экрана, и я вернулся к обычному экрану, который я хотел