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


114

Есть ли способ получить помощь Vim для открытия в вертикальной разделенной панели, а не в горизонтальной?

Ответы:


127

:vertical( vert) работает:

:vert help

Вы также можете управлять разделением окна: слева / вверху или справа / снизу с помощью topleft( to) и botright( bo) . Например, чтобы открыть справку в правом окне вертикального разделения:

:vert bo help

2
как мне это сопоставить, чтобы при запуске: help ____ он всегда открывался так?
Tallboy

13
@Tallboy Попробуй cnoremap help vert help. Это создает сопоставление командного режима, так что при вводе helpв командном режиме вы увидите, что оно расширяется до vert help.
Кейт Пинсон,

3
@Kazark: cnoremap help vert helpкаждая буква «или» helpпоявляется сама по себе, поэтому слово helpне отображается в командной строке. Есть ли способ это исправить? Может еще что-то cnoremap?
iconoclast

7
Для улучшения больше: вы можете использовать cabbrev по - новому h , как vert h: :cabbrev h vert h. Затем каждый раз, когда вы печатаете :h, он автоматически расширяется до :vert h.
Аарон Шен

@AaronShen: лучшее решение (в сочетании с этим ответом)!
gauteh

38

В качестве альтернативы ответам Харугана и Шона вы можете использовать FileTypeсобытие для автокоманды следующим образом:

autocmd FileType help wincmd L

Хотя это изменит положение любого окна справки, а также переместит окно после его размещения вручную, если файл, который вы просматриваете, изменится. Но я считаю, что это проблема любого решения.


2
Просто, и (если я правильно понимаю) побочные эффекты незначительны. Почему это не принятый ответ !? И почему у совершенно неуместного ответа ( :vsplit) много положительных голосов !?
iconoclast

1
Я поддержал как это, так и ответы Харугана за их простоту. Я не очень знаком с событиями autocmd, и мне было интересно, в чем причина, help,*а не просто help. Кроме того, я заметил, что эта команда работает, когда я добавляю ее в свой _vimrcи запускаю новый экземпляр GVim, но не когда я запускаю команду в моем текущем сеансе GVim (мне нужно вручную :set ft=helpзапускать autocmd).
Anthony Geoghegan

Спасибо за комментарий: на *самом деле он не понадобился. Насколько я могу понять для текущего сеанса и нового сеанса, в новом сеансе вам нужно будет повторно использовать ваш исходный код, vimrcчтобы любые изменения вступили в силу, кроме того, если файл уже открыт в буфере и :helpпросто переносит вас в другой часть файла, это не autocmdбудет иметь никакого эффекта
EdJoJob

Будет ли более короткий способ обратиться к: h с тем же autocmd? В настоящее время я пишу это в дополнительной строке:autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge

1
Этот autocmd решает проблему, просматривая тип файла справки. Все файлы справки относятся к helpтипу файла , поэтому при установке типа helpфайла этот autocmd будет запущен. Вы можете проверить это, сделав это :sef helpв любом файле, пока в вашем окне есть разделение, поэтому второй autocmd @danbruegge не понадобится
EdJoJob

20

Не нужно переназначать какие-либо команды или вводить странные псевдонимы, например :Help. Вот решение. Создайте, ~/.vim/after/ftplugin/help.vimгде вы можете переопределить любые настройки Vim, в частности, helpи добавьте туда следующую строку:

autocmd BufWinEnter <buffer> wincmd L

Этот крючок гарантирует, что любой help файл открывается с вертикальным разделением. Кроме того, у него нет побочного эффекта, описанного в ответе Шона. Лично для меня это пока идеальное решение.

Надеюсь это поможет. Удачи.


18

Эта команда должна это сделать:

:vert help

10
Я этого не понимаю. Все :vsplitэто разбивает текущее окно по вертикали. Как это открыть справку на вертикальной панели?
doubleDown

7

Поместите это в свой .vimrc:

command -nargs=* -complete=help Help vertical belowright help <args>

Теперь вы можете открыть вертикальную справку с помощью :Helpкоманды (обратите внимание, что первая буква в верхнем регистре)


6

Чтобы файлы справки всегда открывались с вертикальным разделением справа, поместите это в свой vimrc:

augroup helpfiles
  au!
  au BufRead,BufEnter */doc/* wincmd L
augroup END

Это будет иметь побочный эффект, если в вертикальном разделении будет открываться что-либо с "doc" на своем пути, но это может не быть проблемой для вас. Это не для меня. Если вы предпочитаете, чтобы он открывался с левым вертикальным разделением или чем-то еще, вы можете изменить wincmd L. Вы можете узнать об этом больше с:he wincmd


1
Проверьте тип файла до сплита,:au BufEnter */doc/* if &filetype=='help' | wincmd L | endif
ROX

Это круто! autocmd FileType help wincmd Lработает только один раз для меня, это работает очень хорошо!
voldikss


3

При этом окно справки перемещается один раз . Таким образом, вы можете свободно перемещать его после создания окна.

if has('autocmd')
  function! ILikeHelpToTheRight()
    if !exists('w:help_is_moved') || w:help_is_moved != "right"
      wincmd L
      let w:help_is_moved = "right"
    endif
  endfunction

  augroup HelpPages
    autocmd FileType help nested call ILikeHelpToTheRight()
  augroup END
endif

Функция ILikeHelpToTheRight()будет запускаться только wincmd Lодин раз для каждого окна (это то, чтоw: префикс).

Затем он вызывается всякий раз, когда открывается файл «справки». Это не имеет побочных эффектов решения EdJoJob.


2

Динамически открывать окна справки вверху, если на текущей вкладке более одного окна, или справа, если окно только одно:

if winnr('$') > 2
    wincmd K
else
    wincmd L
endif

Вам нужно будет разместить это ftplugin/help.vimили использовать с autocmd, например:

augroup my_filetype_settings
autocmd!
autocmd FileType help if winnr('$') > 2 | wincmd K | else | wincmd L | endif
augroup END

1

Это предназначено для добавления к ответу @m42, но у меня еще нет 50 представителей здесь, на SO, чтобы добавить в комментарии.

Добавить nnoremap <C-H> :vert bo help в .vimrc

Теперь нажатие Ctrl-H в обычном режиме приведет к переходу в командный режим с префиксом для открытия справки в вертикально разделенном окне справа. Включите конечный пробел послеhelp· наилучших результатов <- в конце строки конфигурации.

Это сопоставление позволяет вам по-прежнему использовать :help\ :hдля открытия окна, разделенного по горизонтали, или циклического просмотра предыдущей истории команд справки без автоматического расширения подсказки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.