gvim:转到打开多个窗口和多个选项卡的特定文件



我正在将编辑器从gedit转移到gvim。在 gedit 中,当我打开多个 gedit 窗口时,每个窗口都有多个选项卡,我可以单击文档,这将列出所有选项卡中的所有文件并打开窗口,我可以通过单击列表转到其中任何一个。

如何在 gvim 中执行此操作?gvim 中的缓冲区按钮仅列出在当前窗口中打开的文件。

谢谢!

GVim是一个单窗口程序。如果你有两个GUI窗口,你就有两个独立的GVim进程,它们不能真正相互通信。

从"普通"编辑器切换到 Vim 并不是在公园里散步:你必须适应 Vim 的心态才能成功。

Vim的"窗口"和"选项卡"命名不当,在新人中引起了很多困惑。

在"普通"编辑器中,选项卡(或没有选项卡的 GUI 窗口(是文件的 1:1 表示形式,GUI 窗口是选项卡/文件的集合。该系统是确定性的:只要您没有关闭它,您就可以将第一个窗口等同于Controlers/,将第二个窗口的第二个选项卡等同于Models/User.php等等。因为"普通"编辑器是一个多窗口程序,并且所有这些选项卡和窗口都是一个进程的子进程,所以主进程很容易提供其所有窗口和选项卡的列表。

在 GVim 中,两个 GUI 窗口由两个单独的进程创建:GUI 窗口 #1 作为不知道 GUI 窗口 #2。此外,Vim 的"窗口"和"选项卡"概念根本不是确定性的。"窗口"只是缓冲区的视图,此缓冲区可以是当前内存中的任何缓冲区。"选项卡"是窗口的集合,其名称自动设置为当前显示在活动"窗口"中的缓冲区。在极端情况下,您最终可能会在y选项卡的x窗口中显示相同的缓冲区。

所以,由于GVim的设计,我认为如果没有大量的工作来模仿Gedit的行为,这是不可能

实现的。因为很容易,特别是对于新用户,混淆他们的"缓冲区","窗口"和"选项卡",

我建议你远离"选项卡",至少片刻,并学会充分利用"缓冲区"和"窗口"。

Vim 的默认行为是要求您先保存当前缓冲区,然后再将其替换为当前窗口中的另一个缓冲区。我认为这就是这么多人转向在 Vim 中使用选项卡的原因。 set hiddenset switchbuf=useopen解决了这个"问题",并允许您在同一窗口中打开许多缓冲区。使用本机工具切换缓冲区非常容易:使用 CtrlP 等第三方工具:sb <tab>、性感/强大。如果您习惯于将项目的不同部分放在不同的窗口中(例如,一个用于Controlers/,一个用于Models/,一个用于Views/,或者一个用于后端,一个用于前端(,您可以使用 Vim 的选项卡。

最新更新