2010-06-29 3 views
16

Я часто просматриваю файлы справки в Vim, но иногда я хочу прочитать их в полноэкранном режиме. Поскольку команда: help открывает его в новом окне и закрывает старое окно, если оно было единственным, кроме файла справки, по какой-то причине закрывает Vim, единственный способ, которым я это сделал, - открыть файл справки, а затем снова открыть его на новой вкладке.Как открыть файл справки в Vim в новом буфере в существующем окне?

Я задавался вопросом, есть ли способ сделать команду help (или другую команду) открыть файл справки в том же окне, но новый буфер?

ответ

22

Возможно, вы ищете :only или CTRL-W o (та же команда). Это делает текущее окно единственным на экране. Все остальные окна закрыты.

Вы можете также вертикально разделить окно справки с:

:vert help {subject} 

BTW, :help фактически делает открытым в новом буфере, это просто «не в списке». Чтобы получить список всех буферов, в том числе неуказанных из них:

:buffers! 
3

Вы можете использовать :help, чтобы открыть окно справки, затем Ctrl + W_, чтобы сделать это окно на весь экран (в основном, смотрите опцию winminheight).

+0

Ого, я понятия не имел, что вы могли бы установить winminheight = 0 для скрытия окна! В то время как его большой трюк, будет * еще * быть маленьким баром с названием старого окна, вот почему мой вопрос состоял в том, чтобы открыть новый буфер: P –

15

Если я правильно понял вопрос правильно, все, что вам нужно сделать, это цепочке помощь вызов команды с только команда:

 
:help <subject> | only 
7

С помощью :tab help вы можете открыть новую вкладку. Это даст вам полную помощь по экрану. Также посмотрите на :help :tab.

+2

Другой вариант - это как последующее, открытое текущее окно в новая вкладка, 'Ctrl-W T'. –

1

Я написал пользовательскую команду с использованием капитала H как так (работает точно так же: час за исключением того, что он использует все окно):

command! -nargs=1 -complete=help H call HelpFullScreen(<f-args>) 

function! HelpFullScreen(topic) 
    exe "h " . a:topic 
    wincmd j 
    try 
     clo 
    catch /^Vim(\a\+):E444:/ " can't close last window 
    endtry 
endfunction 

работает как шарм!

6

:help обычно открывает новое окно если буфер активного окна buftype уже не является help. Чтобы по-настоящему повторно использовать окно, вы должны открыть новый пустой буфер в этом окне с :enew, смените buftype на :set buftype=help, а затем введите :help <whatever>.

Для удобства вы можете определить команду, чтобы сделать это в вашем .vimrc:

command! -nargs=1 -complete=help H :enew | :set buftype=help | :h <args> 

И затем использовать :H {subject} из любого окна.

Используя этот метод, вы действительно повторно используете окно, и это позволяет вам использовать C-^, чтобы перейти к альтернативу, например. Он также будет уважать ваш макет окна (разделенные окна и т. Д.), В отличие от других ответов.

+0

Для того, чтобы 'C- ^' работал, вам нужно добавить 'keepalt' перед': h ' –

0

Чтобы открыть полный размер новой вкладки с нужной темой:

:tab help {subject} 
:tab h {subject} 

Объект любой действительный :help аргумент.

Чтобы разделить текущее окно:

:vert help {subject} 
:vert h {subject} 
Смежные вопросы