垂直分割ウィンドウでVimヘルプを開く


114

Vimのヘルプを水平分割ペインではなく垂直分割ペインで開く方法はありますか?

回答:


127

:verticalvert)は機能します:

:vert help

toplefttobotrightbo)を使用して、ウィンドウを左/上に分割するか、右/下に分割するかを制御することもできます。たとえば、垂直分割の右側のウィンドウでヘルプを開くには:

:vert bo help

2
:help ____を実行すると常にそのように開くので、どうすればマッピングできますか?
トールボーイ

13
@Tallboy Try cnoremap help vert help。これにより、コマンドモードマッピングが作成され、コマンドモードhelpで入力すると、に展開されvert helpます。
キースピンソン

3
@Kazark:cnoremap help vert help各文字をhelp単独で表示するので、単語helpはコマンドラインに表示されません。それを修正する方法はありますか?多分何かcnoremap
iconoclast 2014年

7
より向上させるために:あなたがするcabbrevを使用することができます再定義 hとしてvert 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,*、単純にではなく、その理由が何であるのか疑問に思っていましたhelp。また、このコマンドが自分に追加して_vimrcGVimの新しいインスタンスを起動すると機能するが、現在のGVimセッションでコマンドを実行すると機能しないことに気付きました(autocmd :set ft=helpをトリガーするには手動で実行する必要があります)。
Anthony Geoghegan 14年

コメントをありがとう:*実際には必要ありませんでした。現在のセッションと新しいセッションを理解できる限り、新しいセッションでは、vimrc変更を有効にするためにソースを再設定する必要があります。さらに、ファイルがすでにバッファーで開かれてい:helpて、別の場所に移動するだけの場合ファイルの一部、これautocmdは効果がありません
EdJoJob

同じautocmdで:hにも対処する短い方法はありますか?現在、私は追加の行でそれを書いています:autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge

1
このautocmdは、ヘルプファイルのファイルタイプを調べることで問題を解決します。すべてのヘルプファイルはhelpファイルタイプであるため、ファイルタイプの設定でhelpこのautocmdが実行されます。これ:sef helpは、ウィンドウに分割があるときに任意のファイルで実行することでテストできます。したがって、@ danbrueggeの2番目のautocmdは不要です
EdJoJob

20

コマンドを再マッピングしたり、のような奇妙なエイリアスを導入したりする必要はありません:Help。これが解決策です。~/.vim/after/ftplugin/help.vim特にVim設定をオーバーライドできる場所を作成し、そこにhelp次の行を追加します。

autocmd BufWinEnter <buffer> wincmd L

このフックは、 helpファイルが垂直分割で開かます。さらに、Seanの回答に記載されている副作用はありません。個人的には、これは今のところ私にとって完璧な解決策です。

お役に立てれば。幸運を祈ります。


18

このコマンドはそれを行うはずです:

:vert help

10
わかりません。すべてが:vsplit縦に現在のウィンドウを分割されません。これは垂直ペインでどのようにヘルプを開きますか?
doubleDown 2013年

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私には1回しか機能しませんが、これは非常に効果的です。
voldikss


3

これにより、ヘルプウィンドウが1回移動します。そのため、ウィンドウが作成された後、自由に移動できます。

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

関数は、ウィンドウごとに1回ILikeHelpToTheRight()だけ実行されwincmd Lます(それはw:プレフィックスの目的です)。

これは、「ヘルプ」ファイルが開かれるたびに呼び出されます。これには、EdJoJobのソリューションの副作用はありません。


2

現在のタブに複数のウィンドウがある場合は上部に、ウィンドウが1つしかない場合は右側に動的にヘルプウィンドウを開きます。

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の回答に追加することを目的としていますが、コメントに追加する適切なSOについては、まだ50人の担当者がいません。

nnoremap <C-H> :vert bo help.vimrcに 追加

これで、通常モードでCtrl-Hを押すと、コマンドモードにジャンプし、右側に縦に分割されたウィンドウでヘルプを開くための接頭辞が付きます。後に末尾のスペースを含めるhelp·最良の結果を得るには、構成行の最後にある<-の。

このマッピングにより、:help\ :hを使用して、水平方向に分割されたウィンドウを開いたり、プロンプトの自動展開なしで以前のヘルプコマンド履歴を循環したりできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.