如何设置 vim 打开文件请求将定向到早期终端中已经打开的文件?



我已经通过在文件浏览器中双击文件图标打开了一个文件(假设来自鹦鹉螺)。该文件将在终端上运行的 vim 中打开(假设在 gnome 终端中)。假设我将尝试通过再次双击文件浏览器中的文件图标再次打开同一文件。这次在终端中打开的vim会给你烦人的消息,以只读方式打开文件,等等......模式。

我需要一种方法来定向查看较旧的 gnome 终端,当文件已经在其中打开时。其他基于 GUI 的编辑器(如 gedit)也有这个选项。如果没有这样的选项,那么我正在使用gvim,它有这样的功能。

Vim 具有可用于此目的的客户端-服务器功能。默认情况下,当您打开gvim窗口时,将启动服务器。服务器名称将位于标题栏中,默认情况下,第一个是GVIM,第二个是GVIM2,下一个是GVIM3,依此类推。

通过使用--remote--remote-silent选项调用vimgvim,可以在同一窗口中打开文件(如果服务器丢失,后者不会打印错误)。您可以使用--servername SERVER指定除第一个服务器以外的其他服务器。

如果您的目标是始终只使用一个 Vim 会话,那么无论您如何调用程序,那么您始终可以使用gvim并将 GNOME 设置为使用gvim --remote-silent打开文件,也可以在您的 shell 配置中使用export EDITOR="gvim --remote-silent"进行设置。然后,无论您在做什么,您都将始终在单个窗口中打开。

如果您只希望 GUI 中的文件在一个窗口中打开并继续使用命令行 Vim 执行其他任务,请将您的 shell 配置指向vim并将 GNOME 设置为使用gvim --remote-silent打开文件,以便它将在gvim中打开 GUI 中的所有文件,而不要理会您的其他会话。

最新更新