Подтвердить что ты не робот

Отменить разделенное окно в Vim

Я разбил окна по горизонтали. Теперь, как я могу вернуться в нормальный режим, т.е. Не разбивать окно только на одно окно, не отменяя все мои открытые окна. У меня 5 и не хочу "уходить", просто хочу выйти из разделенного окна.

4b9b3361

Ответ 1

Нажмите Control + w, затем нажмите q, чтобы закрыть каждое окно за раз.

Обновить. Также рассмотрите ответы eckes, которые могут быть более полезными для вас, включая :on (см. ниже), если вы не хотите делать это по одному окну за раз.

Ответ 2

Чтобы закрыть все расщепления, я обычно помещаю курсор в окно, которое должно быть на, видимым, а затем делать :on, которое делает текущее окно насильное > видимое окно. Мне очень нравится помнить.


Изменить: :help :on показал, что эти команды одинаковы:

  • :on
  • :only
  • CTRL-w CTRL-o
  • И да, также CTRL-w o имеет тот же эффект (как Nathan ответил).

Каждый из этих четырех закрывает все окна, кроме активного.

Ответ 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

Хорошо, я просто отсоединился и снова подключился к сеансу экрана, и я вернулся к обычному экрану, который я хотел