【发布时间】:2010-10-22 09:26:45
【问题描述】:
我有三台显示器。
我通常在每个监视器上运行一个最大化的 xterm,附加到同一个 GNU screen 会话。
vim 可以使用类似的模型吗?是否可以运行三个 vim,都共享同一个“vim 会话”:
- 每个 vim 窗口显示不同的 vim 选项卡
- vim 设置在所有窗口之间共享
- 没有得到“交换文件...已经存在!”如果我在两个选项卡上打开同一个文件,则会出现错误消息。
【问题讨论】:
标签: vim gnu-screen
我有三台显示器。
我通常在每个监视器上运行一个最大化的 xterm,附加到同一个 GNU screen 会话。
vim 可以使用类似的模型吗?是否可以运行三个 vim,都共享同一个“vim 会话”:
【问题讨论】:
标签: vim gnu-screen
我有一个可行的解决方案,其中两个 vim 实例进行通信。
http://github.com/codeape2/vim-multiple-monitors
如果检测到现有交换文件,它使用 SwapExists 自动命令来指示其他实例打开文件。
【讨论】:
--servername 参数。我的 vim (7.3) 会因为错误消息 Unknown option argument: "--servername" 而死掉。我错过了什么?
:version。检查功能是否包括+clientserver
您可以在screen 下使用vim。
$ screen
$ vim
# on another terminal
$ screen -x
# the same vim screen
如果您的终端模拟器支持制表符(例如 gnome-terminal),您可以将其用作制表符(恕我直言,gnome-terminals 的制表符支持比 vim 自己的要好,除非您不能在不同的 vim 之间复制和粘贴会话,但是您可以改用系统复制粘贴缓冲区:“+y 和”+p)。
但是,如果您使用的是 gvim,这将不起作用。
【讨论】:
不,Vim 实例仅限于桌面上的单个应用程序窗口。不同的 Vim 实例有独立的会话。
此外,请注意,如果您在两个不同的 Vim 实例中打开同一个文件,您不仅会收到“交换文件存在”消息,而且两个实例不共享缓冲区,因此在一个实例中所做的更改是独立于其他人。
如果更改的文件保存在一个实例中,当您返回另一个 Vim 实例中的文件时,您将收到一条消息“文件自编辑开始后已更改”并询问您是否要重新加载文件(这将加载其他实例保存的更改,忽略您在当前实例中所做的任何更改。
【讨论】:
Neovim 是一个旨在提供 vim 附加/分离功能的项目,例如 tmux。 此功能尚未实现(2015 年 6 月 19 日),但可能很快就会实现。
您可以在 neovim.io 上看到此项目的许多其他核心功能。
【讨论】:
:设置 noswapfile :设置自动读取
缓冲区不是以这种方式共享的,但如果你保存它,vim 会自动读取文件更改。而且您不会收到“交换文件存在”消息。
【讨论】: