Vim:打开帮助或文件时是否可以默认垂直分割而不是水平分割?

Vim:打开帮助或文件时是否可以默认垂直分割而不是水平分割?

使用 时:help,它会水平分割窗口并在顶部窗口中打开帮助。然后我需要使用^w L将帮助窗口移到右侧。如果使用^w f打开光标下的文件,情况也一样,窗口会水平分割并在顶部窗口中打开文件。

有没有办法让这些命令垂直分割窗口?

答案1

Vim 提供以下命令:

:vert[ical] {cmd}
    Execute {cmd}.  If it contains a command that splits a window,
    it will be split vertically.

:[count]winc[md] {arg}
    Like executing CTRL-W [count] {arg}.

所以:

  • 要打开垂直帮助窗口,请输入:vert help
  • 要在新的垂直分割中编辑光标下的文件名,请输入 :vert winc f

答案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:前缀的用途)。

答案3

这是 neovim 的 lua 中的自动命令。

-- Open help window in a vertical split to the right.
vim.api.nvim_create_autocmd("BufWinEnter", {
    group = vim.api.nvim_create_augroup("help_window_right", {}),
    pattern = { "*.txt" },
    callback = function()
        if vim.o.filetype == 'help' then vim.cmd.wincmd("L") end
    end
})

答案4

解决此问题的一个方法是添加commands。我喜欢简洁的命令,所以我这样命名,但您可以随意命名。

"
" -narg: the number of arguments to the command
" -complete: enables arguments completion with `help` subjects
" <args>: a placeholder that will be replaced by an argument to the command
" 

" :Hv to open vertically
command -narg=1 -complete=help H vert help <args>
" :Ht to open in a new tab
command -narg=1 -complete=help Hh tab help <args>

相关内容