如何在垂直分割中使Vim打开帮助?


18

我通常在下拉式终端中工作,高度大约为25个字符。因为我比Windows 1更喜欢制表符,所以通常会浪费很多水平空间-大约是终端宽度的一半。

最重要的是,helpheight在打开帮助窗口时,Vim的默认设置为,只留下了几行文件内容:

在此处输入图片说明

有没有办法:h利用垂直分割?

我可以:

  • 减少 helpheight
  • 用于<C-W>L手动移动窗口
  • 制作一个地图或自定义命令为我完成以上操作。

有没有更简单的方法?

1当我需要一起查看多个文件时,我确实使用Windows。但是通常我希望每个文件都在其自己的(心理)上下文中。


@statox对此感到抱歉。当我写那封信时,我在想什么。
muru

啊,不必后悔,最好的情况也会发生;-)
statox

Answers:


16

您可以用来:vert h [your topic]垂直打开帮助。

您可以使用以下命令:

cnoreabbrev H vert h

要使vim 在命令行中自动替换Hvert h

您也可以使用以下缩写:

cnoreabbrev HR vert bo h

打开屏幕右侧的帮助窗口。(:h :botright有关的详细信息,请参见bo


那么,没有可配置的选项吗?喜欢的东西splitright:help
muru

我不确定您的意思,您希望能够选择将帮助窗口放置在何处?
statox

我想你的意思:rightbelow不是:botright
muru

2
那么这取决于你所期望的行为,让我们说,你要玩:lefta[bove]:rightb[elow]:to[pleft]:bo[tright],看看你更喜欢哪一个。我更喜欢:botright:rightbelow因为无论我的布局是什么,我都会得到一个全屏显示的帮助窗口。使用时:rightbelow,我已经有一个水平拆分了,我的帮助窗口将达到此拆分的高度。
statox

2
可悲的是,编写正确的cabbrev命令涉及一些仪式
佐藤桂2015年

7

这是受junegunn的vimrc启发

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

1
我很好奇:这与有autocmd FileType help wincmd L什么不同?有边缘情况吗?
muru

我认为至少两次触发了两次(尝试在其中添加回声)。这可能与打开帮助窗口有关,而不是转到特定的帮助标签。因此,这BufEnter将稍微更有效率。更不用说添加一个命令,该命令在触发两次后将变为“撤消”(取消自身)。
VanLaser

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覆盖屏幕的垂直一半时,这将非常有用。
muru

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()如果&buftype =='help'”将帮助窗口转换为选项卡,执行endif终端函数“ normal \ <CW> T”
Mark Nichols
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.