수직 분할 창에서 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있습니다.
Keith Pinson

3
@Kazark :의 cnoremap help vert help각 문자가 단독 으로 help나타나게하므로 help명령 줄에 단어 가 나타나지 않습니다. 그것을 고칠 방법이 있습니까? 아마도 다른 것 cnoremap?
iconoclast 2014 년

7
더 개선하기 위해 : 당신은 할 cabbrev을 사용할 수 있습니다 재정의 hvert h: :cabbrev h vert h. 그런 다음 입력 할 때마다 :h자동으로로 확장됩니다 :vert h.
아론 쉔

@AaronShen : 최고의 솔루션 (이 답변과 함께 사용)!
gauteh

38

Haroogan 및 Sean의 답변 대신 다음 FileType과 같이 자동 명령에 이벤트를 사용할 수 있습니다 .

autocmd FileType help wincmd L

이렇게하면 도움말 창의 위치가 변경되고보고있는 파일이 변경된 경우 수동으로 배치 한 후 창을 이동할 수 있습니다. 그러나 나는 이것이 모든 해결책의 문제라고 생각합니다.


2
간단하고 (내가 올바르게 이해한다면) 부작용은 무시할 수 있습니다. 왜 이것이 허용되지 않는 대답입니까!? 그리고 완전히 무관 한 답변 ( :vsplit)에 많은 찬성표 가있는 이유는 무엇 입니까?
iconoclast 2014 년

1
나는 단순함을 위해 이것과 Haroogan의 답변을 모두 찬성했습니다. 나는 autocmd 이벤트에 익숙하지 help,*않고 단순히 .NET 대신 이유가 무엇인지 궁금합니다 help. 또한이 명령을 내 _vimrcGVim에 추가 하고 새 인스턴스를 시작할 때는 작동 하지만 현재 GVim 세션에서 명령을 실행할 때는 작동하지 않는 것으로 나타났습니다 ( :set ft=helpautocmd 를 수동 으로 트리거해야 함).
Anthony Geoghegan 2014-06-24

댓글 주셔서 감사합니다 : *실제로 필요하지 않았습니다. 현재 세션과 새 세션에 대해 이해할 수있는 한, 새 세션에서 vimrc변경 사항을 적용하려면 리소스를 리소스로 추가해야합니다. 추가로 파일이 이미 버퍼에서 열려 :help있고 다른 세션 으로 이동하는 경우 파일의 부분은,이 autocmd효과가없는 것
EdJoJob

동일한 autocmd로 : h를 처리하는 더 짧은 방법이 있습니까? 현재 내가 여분의 라인에 쓰기 :autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge

1
이 autocmd는 도움말 파일의 파일 유형을 확인하여 문제를 해결합니다. 모든 도움말 파일은 파일 유형이므로이 autocmd가 실행 help되는 help파일 유형 설정에 따라 다릅니다. 당신은 수행하여이를 테스트 할 수 있습니다 :sef help, 따라서 당신의 창 분할이있는 동안에는 파일에 @ danbruegge의 두 번째 autocmd이 필요하지 않을 것입니다
EdJoJob

20

명령을 다시 매핑하거나 :Help. 여기에 해결책이 있습니다. 만들기 ~/.vim/after/ftplugin/help.vim당신이 특히에 대한 모든 빔 설정을 대체 할 수있는 help거기에 다음과 같은 라인을 추가합니다 :

autocmd BufWinEnter <buffer> wincmd L

이 후크는 모든 help파일이 수직 분할로 열리 도록합니다 . 또한 Sean의 답변에 설명 된 부작용이 없습니다. 개인적으로 이것은 지금까지 나에게 완벽한 솔루션입니다.

도움이 되었기를 바랍니다. 행운을 빕니다.


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 명의 담당자가 없습니다.

nnoremap <C-H> :vert bo help.vimrc에 추가

이제 일반 모드에서 Ctrl-H를 누르면 오른쪽에 세로로 분할 된 창에서 도움말을 열 수있는 접두사가있는 명령 모드로 이동합니다. help·최상의 결과를 얻으려면 구성 줄 끝에 <- 뒤에 후행 공백을 포함하십시오 .

이 매핑을 사용하면 :help\ :h를 사용하여 가로로 분할 된 창을 열거 나 프롬프트 자동 확장없이 이전 도움말 명령 기록을 순환 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.