在多个监视器上使用vim

在多个监视器上使用vim,vim,gnu-screen,Vim,Gnu Screen,我有三台显示器 我通常在连接到同一会话的每个监视器上运行一个最大化的xterm vim是否可以使用类似的模型?是否可以运行三个vim,所有vim共享同一个“vim会话”: 显示不同vim选项卡的每个vim窗口 所有窗口之间共享的vim设置 如果在两个选项卡上打开同一文件,则无法获取“交换文件…已存在!”错误消息 否,Vim实例仅限于桌面上的单个应用程序窗口。不同的Vim实例具有独立的会话 此外,请注意,如果在两个不同的Vim实例中打开相同的文件,不仅会收到“Swap file exists”消

我有三台显示器

我通常在连接到同一会话的每个监视器上运行一个最大化的xterm

vim是否可以使用类似的模型?是否可以运行三个vim,所有vim共享同一个“vim会话”:

  • 显示不同vim选项卡的每个vim窗口
  • 所有窗口之间共享的vim设置
  • 如果在两个选项卡上打开同一文件,则无法获取“交换文件…已存在!”错误消息

否,Vim实例仅限于桌面上的单个应用程序窗口。不同的Vim实例具有独立的会话

此外,请注意,如果在两个不同的Vim实例中打开相同的文件,不仅会收到“Swap file exists”消息,而且两个实例不共享缓冲区,因此在其中一个实例中所做的更改与另一个实例无关


如果更改的文件保存在一个实例中,当您返回到另一个Vim实例中的文件时,您将收到一条消息“文件自编辑开始以来已更改”,并询问您是否要重新加载该文件(这将加载另一个实例保存的更改,而不考虑您在当前实例中所做的任何更改).

我有一个工作解决方案,其中两个vim实例进行通信


它使用SwapExists autocmd指示其他实例在检测到现有交换文件时打开文件。

您可以在
屏幕下使用
vim

$ screen
$ vim

# on another terminal 
$ screen -x
# the same vim screen
如果您的终端模拟器支持制表符(例如gnome终端),您可以将其用作制表符(IMHO,gnome终端的制表符支持优于vim自己的制表符支持,除非您可能无法在不同的vim会话之间复制和粘贴,但您可以改为使用系统复制粘贴缓冲区:“+y和”+p”)

但是,如果您使用的是gvim,这将不起作用。

是一个旨在提供vim附加/分离功能(如tmux)的项目。 该功能尚未实现(2015年6月19日),但可能很快就会实现


这个项目还有许多其他的核心特性,你可以在neovim.io上看到。

我试着使用你的vim脚本,但我不明白你认为vim应该如何理解
--servername
参数。我的vim(7.3)只是随着错误消息
未知选项参数“--servername”
而消失。我错过了什么?也许您的vim没有编译为支持远程调用。在vim中,执行
:version
。检查功能是否包括Ubuntu中的
+clientserver
,我必须安装vim gnome才能获得一个支持+clientserver的vim。这不会简单地反映正在发生的事情吗?我认为截至2017年11月,这仍然没有实现,也没有被开发