使 gvim 成为‘仅实例’

使 gvim 成为‘仅实例’

我想让 gvim 成为“仅限实例”,即知道一个选项或某些东西,在已经打开的 gvim 实例上将文件作为选项卡打开,而不是打开一个新实例。

举例说明:假设我打开了一个 gvim 窗口,其中有一个文件 module1.c。假设我在终端上,我必须输入什么命令才能使“module2.c”在现在包含 module1.c 的同一窗口中打开?

PS:我知道有一个 -p 选项允许我在多个选项卡中打开多个文件。但我正在寻找一种在 gvim 运行后从外部打开新选项卡的方法。

怎么做?有可能吗?

答案1

我想让 gvim 成为“仅限实例”,即知道一个选项或某些东西,在已经打开的 gvim 实例上将文件作为选项卡打开,而不是打开一个新实例。

请允许我在这里澄清一些事情……在 vim 中,标签并不是人们所期望的那样。在大多数程序中,它们是文件的“实例”(一个标签/一个文件),但在 vim 中,它们只是一个“视点”,您可以在其中设置多个 vim 窗口,每个窗口都保存着您输入的内容。

Vim 在打开文件时,会在缓冲区中打开它。每个文件都有一个缓冲区。您可以使用以下命令查看已打开缓冲区的列表

:ls

举例说明:假设我打开了一个 gvim 窗口,其中有一个文件 module1.c。假设我在终端上,我必须输入什么命令才能使“module2.c”在现在包含 module1.c 的同一窗口中打开?

同样,我们遇到了术语问题。为了便于讨论,我假设您指的是 Windows 窗口,而不是 Vim 内部窗口。如果您希望在已打开的 gvim 实例中打开文件,请尝试

gvim first_file.dat
gvim --remote-tab second_file.dat

可以通过将其放入 .bat 文件中来轻松缩短它(如果您使用的是 Windows),然后您不必一遍又一遍地输入“--...”部分。

PS:我知道有一个 -p 选项允许我在多个选项卡中打开多个文件。但我正在寻找一种在 gvim 运行后从外部打开新选项卡的方法。

有趣,我不知道这个:)

怎么做?有可能吗?

请告诉我这是否就是您所寻找的。

答案2

如果 Vim 是在客户端服务器模式下编译的,那么它可以在客户端服务器模式下执行此操作+客户端服务器选项。

使用以下命令启动第一个 vim 实例- 服务器名称选项:

gvim --servername FILES --remote-silent file.txt

现在,您可以通过以下方式打开此实例中的更多文件:- 服务器名称或仅使用- 偏僻的选项。

gvim --remote file2.txt

gvim --servername FOOBAR --remote file3.txt

摘自 vim 手册文档客户端服务器模式据我所知,新文件在活动选项卡上作为缓冲区打开。我不确定是否可以将 vim 配置为在新选项卡中打开传入文件。

相关内容