在Vim中,是否可以在指定已打开的分割窗口中打开文件?

3
最近,我在编写Ruby时使用Vim作为我的编辑器,但我不知道是否可以在Vim中实现这一点。假设在我的Vim中,我已经有了2个垂直分割窗口,分别命名为AB,如下图所示: split window 然后,如果我将光标停留在require语句下面,并按下gf键跳转到源文件xyz.rb,它默认会在同一个窗口A中显示。
是否有任何快捷键或快速组合键,可以打开或在已打开的B分割窗口中显示源文件xyz.rb?(即使窗口B尚不存在,也会自动创建)
我查看了手册,它确实有一些方法可以在不同的水平分割窗口或新选项卡中显示xyz.rb,但是如果我想在指定的打开的分割窗口B中显示它,是否可能呢?
谢谢 :)
1个回答

5
你所描述的功能已经以“预览窗口”的形式存在。
你可以将一个按键(例如gf)映射为以下内容:
:exec 'pedit ' . expand('<cfile>')

这将在“预览”窗口中打开光标下的文件名。如果不存在预览窗口,则会打开一个新的预览窗口。有关更多信息,请参见:he preview-window

使用^Wz(或:pclose)关闭预览窗口。


谢谢您的回复,但预览窗口可能与我想要的有些不同。首先,我需要打开的文件是可编辑的,而不仅仅是预览。其次,我希望文件在已经存在的指定分割窗口中打开,就像上面图片中的B窗口一样。 :) - 高見龍
其实,我不确定是否可以做到那个 :P - 高見龍
再次感谢,我的实际需求是当我编辑一个名为A的源文件时,有时我想编辑文件A所需的源文件B。我过去常常使用gf跳转到文件并通过ctrl+^返回,但由于我有一台宽屏显示器,为什么不在右侧分割窗口中显示源文件B呢?但有时右侧分割窗口已经打开了其他文件,就像上面附图所示。因此,我的问题是:是否有任何方法可以在某个已存在的分割窗口中打开文件B,而不仅仅是预览,我可能需要对其进行编辑 :) - 高見龍
实际上我可以通过几个步骤来完成,比如使用:vs打开一个新的垂直窗口(如果分割窗口不存在),然后按下gf来显示该文件。我只是好奇是否有更简单的方法 :) - 高見龍
@高見龍 嗯,預覽窗口可以很好地進行編輯。您可以查看 :se splitright^Wf。此外,switchbuf 選項可能會引起您的興趣。還要考慮使用 :vert pedit - sehe
显示剩余3条评论

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