在垂直分割窗口中打开Vim帮助

时间:2009-03-10 15:51:27

标签: vim

有没有办法让Vim帮助在垂直分割窗格而不是水平分割窗格中打开?

10 个答案:

答案 0 :(得分:116)

:vertical (vert)有效:

:vert help

您还可以使用topleft (to)botright (bo)控制窗口在左侧/顶部或右侧/底部的分割。例如,要在垂直拆分的右侧窗口中打开帮助:

:vert bo help

答案 1 :(得分:30)

作为Haroogan和Sean的答案的替代方案,您可以使用FileType事件进行自动命令,如下所示:

autocmd FileType help wincmd L

虽然这会改变任何帮助窗口的位置,但如果您正在查看的文件发生变化,则会在手动放置窗口后移动窗口。但我相信这是任何解决方案的问题。

答案 2 :(得分:17)

此命令应该这样做:

:vert help

答案 3 :(得分:17)

无需重新映射任何命令或引入奇怪的别名,如:Help。这是解决方案。创建~/.vim/after/ftplugin/help.vim,您可以覆盖任何Vim设置,特别是help,并在那里添加以下行:

autocmd BufWinEnter <buffer> wincmd L

此挂钩将确保在垂直拆分中打开任何help文件。此外,它没有肖恩答案中描述的副作用。就个人而言,到目前为止,这对我来说是完美的解决方案。

希望这会有所帮助。祝你好运。

答案 4 :(得分:7)

将其放入.vimrc

command -nargs=* -complete=help Help vertical belowright help <args>

现在您可以使用:Help命令打开垂直帮助(注意第一个字母是大写的)

答案 5 :(得分:6)

要使帮助文件始终以右侧的垂直分割方式打开,请将其放在vimrc中:

augroup helpfiles
  au!
  au BufRead,BufEnter */doc/* wincmd L
augroup END

这会产生副作用,即在其垂直分割中打开路径中的“doc”,但这对您来说可能不是问题。这不适合我。如果您希望在左侧垂直拆分或其他任何内容中打开它,则可以更改wincmd L。您可以使用:he wincmd

了解有关它的更多信息

答案 6 :(得分:5)

将以下内容放入~/.vim/ftplugin/help.vim

wincmd L

不能比这简单:)

答案 7 :(得分:2)

这会移动帮助窗口一次。因此,您可以在创建窗口后自由移动它。

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解决方案的副作用。

答案 8 :(得分:1)

这是为了添加到@ m42的答案,但我还没有50个代表在这里添加到评论中。

nnoremap <C-H> :vert bo help添加到.vimrc

现在在正常模式下按Ctrl-H将跳转到命令模式,前缀为在右侧垂直分割窗口中打开帮助。 在配置行末尾的help·&lt; - 后面加一个尾随空格,以获得最佳结果。

此映射允许您仍然使用:help \ :h打开水平拆分窗口或循环显示之前的帮助命令历史记录,而不会显示自动扩展。

答案 9 :(得分:0)

如果当前选项卡中有多个窗口,则动态地在顶部打开帮助窗口;如果只有一个窗口,则在右侧动态打开帮助窗口:

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