垂直分割でVimのヘルプを開くにはどうすればよいですか?


18

私は通常、約25文字の高さで動作するドロップダウンターミナルで働いています。私はウィンドウ1よりタブを好むので、通常、多くの水平方向のスペースが浪費されます-ターミナルの幅の約半分です。

さらに、Vimのデフォルト設定はhelpheightであり、ヘルプウィンドウを開くと、ファイルコンテンツの数行が残ります。

ここに画像の説明を入力してください

:h垂直分割を使用する方法はありますか?

私はできた:

  • 減少 helpheight
  • <C-W>Lウィンドウを手動で移動するために使用します
  • 上記を行うマップまたはカスタムコマンドを作成します。

もっと簡単な方法はありますか?

1私がやる私が一緒に複数のファイルを見るために必要がある場合、使用の窓を。しかし、通常、各ファイルは独自の(メンタル)コンテキストにあることを好みます。


@statox申し訳ありません。私がそれを書いたときに考えていたダンノ。
ムル

Ahah申し訳ありませんが、最高のものにも起こります
;

回答:


16

を使用:vert h [your topic]して、ヘルプを垂直に開くことができます。

次のコマンドを使用できます。

cnoreabbrev H vert h

コマンドラインでvim Hvert h自動的に置き換えます。

また、この略語を使用することもできます。

cnoreabbrev HR vert bo h

画面の右側にあるヘルプウィンドウを開くには。(詳細については:h :botrightをご覧くださいbo


だから、構成可能なオプションはありませんか?のようなsplitrightもの:help
ムル

ヘルプウィンドウの配置場所を選択できるようにしたいですか?
statox

あなたが:rightbelow代わりに意味したと思います:botright
ムル

2
まあ、それはあなたが期待している行動に依存し、letがあなたが果たすべきことを言い:lefta[bove]:rightb[elow]:to[pleft]そして:bo[tright]、あなたが好むどれ参照してください。私が好む:botrightの上に:rightbelow今まで私のレイアウトが何であるかので、私は画面の全高のヘルプウィンドウを取得します。で:rightbelowある私はすでに私のヘルプウィンドウは、このスプリットの高さになり、水平分割を持っています。
statox

2
悲しいことに、正しいcabbrevコマンドを書くには何らかの儀式が必要です。
佐藤桂

7

これは、junegunnのvimrcからインスピレーションを受けています

augroup vimrc_help
  autocmd!
  autocmd BufEnter *.txt if &buftype == 'help' | wincmd L | endif
augroup END

1
私は興味があります:これはどう違うのautocmd FileType help wincmd Lですか?エッジケースはありますか?
ムル

それは少なくとも2回トリガーされると思います(少なくともエコーを追加してみてください)。特定のヘルプタグに移動するよりも、ヘルプウィンドウを開くことに関係がある可能性があります。したがって、これBufEnterはわずかに効率的です。2回トリガーされたときに「元に戻す」(それ自体をキャンセルする)コマンドを追加することは言うまでもありません。
ヴァンレーザー

6

垂直または非選択を行うカスタムコマンドを使用できます。これは、現在のウィンドウの幅と高さに基づきます。

function! s:ShowHelp(tag) abort
  if winheight('%') < winwidth('%')
    execute 'vertical help '.a:tag
  else
    execute 'help '.a:tag
  endif
endfunction

command! -nargs=1 H call s:ShowHelp(<f-args>)

参考文献:

  • :h winheight
  • :h <f-args>

優秀な。これは、画面の垂直方向の半分をカバーするgvimを開いているときに非常に便利です。
ムル

0

これは垂直分割自体ではありませんが、独自のタブでヘルプを表示することは非常に便利です。

augroup HelpInTabs
autocmd!
   autocmd BufEnter *.txt call HelpInNewTab()
augroup END

おっと。答え全体を貼り付けたと思った。これが残りのコードです。

" only apply to help files...
function! HelpInNewTab ()
  if &buftype == 'help'
    " convert help window to a tab
    execute "normal \<C-W>T"
  endif
endfunction

1
これはHelpInNewTab()組み込みの機能ではないので、実際にソリューションをテストすることはできないと思うので、あなたの機能も表示することをお勧めします。
statox

"ヘルプファイルにのみ適用...関数!HelpInNewTab()if&buftype == 'help'"ヘルプウィンドウをタブに変換 "通常の\ <CW> T" endif endfunction
Mark Nichols
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.