Vim分割窗口:聚焦新窗口

9
我已经进行了映射以方便使用:
" this is a ctrl + backslash binding to vsplit
nmap <C-\> :vsplit<CR>
" this is a ctrl + hyphen binding to hsplit
nmap <C-_> :split<CR>

这很不错,但仍需最后一步处理以满足我的期望,即应专注于新建窗口,以便我可以立即使用传统的:e或CtrlP插件打开任何文件。目前,这样做将从原始窗口导航,稍微有些令人失去方向感。

如何让:split:vsplit自动聚焦到新创建的vim窗口?


2个回答

28

当我打开新的分屏时,光标默认会自动聚焦在新窗口里。你可能没有意识到的是,新的垂直分屏被放在左侧,而新的水平分屏则被放在顶部。

如果想要在屏幕右侧或底部打开新的分屏,请将以下内容添加到您的vimrc文件中。

set splitbelow
set splitright

有些复杂。仅仅使用 :[v]split 是很难想出这种花式的。 - timss
1
但是当你执行:vnew命令时,很容易就能明白。 - romainl
设置 splitbelowsplitright 是没问题的,但我不确定我能否适应现在 :h 也会打开一个下方分屏。是否可能只让 :h 分割“上方”? - timss
我也注意到了!“:h”出现在底部,这对我来说没问题。 - Steven Lu

3

我不确定它是否百分之百灵活并在每种情况下都有效,但您可以将其与移动光标到另一个窗口命令结合使用,例如ctrlw+w

nnoremap <C-\> <C-w>v<C-w>w
  • <C-w>v - 类似于 :vsplit
  • <C-w>w - 将光标移动到当前窗口下方/右侧的窗口

这虽然不是一个坏主意,但我认为它并不总是会进入正确的窗口。文档似乎没有表明CTRL-W_W有一个:命令等效项,这很奇怪。 - Steven Lu
@StevenLu 是的,这可能会很麻烦,具体取决于您如何拆分。我实际上有一个类似的绑定,但是 splitbelowsplitright 似乎是更好的解决方案。 - timss
@StevenLu 如果您键入 :h split,它上面的两行会显示正常模式下的命令。 - FDinoff
@FDinoff,好吧,我没有在“CTRL-W_W的:命令是什么”中找到答案,但是我在向下滚动一段时间后找到了它,那就是 :wincmd w,它将发出相同的功能。 - Steven Lu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接