Відкриття довідки Vim у вертикальному розділеному вікні


114

Чи є спосіб отримати допомогу Vim для відкриття у вертикальній розділеній панелі, а не в горизонтальній?

Відповіді:


127

:vertical( vert) працює:

:vert help

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

:vert bo help

2
як я можу це зробити так, коли я запускаю: help ____, це завжди відкривається так?
Талбой

13
@Tallboy Спробуйте cnoremap help vert help. Це створює відображення режиму команд так, що при введенні helpв командному режимі ви побачите його розширення vert help.
Кіт Пінсон

3
@Kazark: cnoremap help vert helpкожен лист helpвідображається сам собою, тому слово helpне відображається в командному рядку. Чи можна це виправити? Може щось інше, ніж cnoremap?
іконоборство

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

@AaronShen: найкраще рішення (у поєднанні з цією відповіддю)!
Гауте

38

Як альтернатива відповідям Харугана та Шона ви можете використовувати FileTypeподію для автокоманди, як це:

autocmd FileType help wincmd L

Хоча це змінить положення будь-якого довідкового вікна, а також переміщення вікна після розміщення вручну, якщо файл, який ви шукаєте, зміниться. Але я вважаю, що це проблема з будь-яким рішенням.


2
Прості та (якщо я правильно розумію) побічні ефекти незначні. Чому це не прийнята відповідь !? І чому абсолютно нерелевантна відповідь ( :vsplit) має багато відгуків !?
іконоборство

1
Я прихильнив і це, і відповіді Харугана на їхню простоту. Я не дуже знайомий з подіями autocmd, і мені було цікаво, в чому причина, help,*а не просто help. Також я помітив, що ця команда працює, коли я додаю її до свого _vimrcі запускаю новий екземпляр GVim, але не тоді, коли я запускаю команду в моєму поточному сеансі GVim (мені потрібно вручну :set ft=helpзапустити autocmd).
Ентоні Геогеган

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

Чи буде коротший спосіб також звертатися до: h з тим же autocmd? В даний час я пишу це в додатковому рядку:autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge

1
Цей autocmd вирішує проблему, переглядаючи набір файлів довідки. Усі довідкові файли мають helpтип файлу, таким чином, у налаштуваннях helpфайлу цей авто-код буде працювати. Ви можете перевірити це, зробивши :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це розділено поточне вікно вертикально. Як це відкрито допомагає у вертикальній області?
подвійнеDown

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 повторень, настільки належним чином, щоб додати коментарі.

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

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

Це відображення дозволяє все ще використовувати :help\, :hщоб відкрити горизонтально розділене вікно або провести цикл через попередню історію команд довідки без оперативного автоматичного розширення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.