0

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

我怎样才能在 gvim 中做到这一点?gvim 中的 Buffers 按钮仅列出当前窗口中打开的文件。

谢谢!

4

1 回答 1

1

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

从“普通”编辑器切换到 Vim 并不是在公园里散步:您必须适应 Vim 的思维方式才能成功切换。

Vim 的 "windows" 和 "tabs" 的名字很糟糕,给新手带来了很大的困惑。

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

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

因此,由于 GVim 的设计,我认为没有大量工作来模仿 Gedit 的行为是不可能的。

因为这太容易了,特别是对于新用户来说,混淆他们的“缓冲区”、“窗口”和“选项卡”我建议你至少暂时远离“选项卡”,并学习使用“缓冲区” ”和“窗口”发挥最大作用。

Vim 的默认行为是在用另一个缓冲区替换当前窗口中的当前缓冲区之前要求您保存当前缓冲区。我认为这就是很多人转向在 Vim 中使用制表符的原因。set hiddenset switchbuf=useopen解决这个“问题”并允许您在同一个窗口中打开许多缓冲区。使用本机工具切换缓冲区非常容易:使用CtrlP其他:sb <tab>3rd 方工具时性感/强大。如果您习惯在不同的窗口中拥有项目的不同部分(例如,一个用于,一个用于,一个用于,或者一个用于后端,一个用于前端),您可以使用 Vim 的选项卡。Controlers/Models/Views/

于 2012-04-28T07:36:02.983 回答