跨多个显示器的Vim


9

有没有人能为MacVim或gvim跨多个(可能分辨率不同)显示器提供出色的解决方案?由于有两个单独的缓冲区和交换文件,因此进行2个会话的效果不佳。

您可能会认为您可以让2个gui窗口共享相同的缓冲区,但是我找不到任何有效的方法。


1
我也想知道答案。我发现这个vimdoc.sourceforge.net/htmldoc/remote.html似乎是正确的方向。但是我还没有尝试过。
Amjith,2011年

Answers:


1

展开gvim窗口以覆盖两个屏幕,并用于CTRL-W v垂直分割编辑窗口。

请参阅:help CTRL-W以获取更多窗口命令。


1
我很清楚拆分窗口。不幸的是,这不适用于不同的显示器分辨率。似乎确实没有一个好方法。
Patm

1

我也经常使用多监视器,因此我做了一个简单的解决方法,直到vim实现此功能为止。使用名为gitv的lua脚本,我可以同时在多个GVIM实例上打开文件。基本上,当有两个名为GVIM1和GVIM2的GVIM实例时,我所做的只是确保一次只能编辑一个文件,而其他所有文件都是查看器。(所有操作都会自动完成,而不会提示。)

工作流程:当前,gitv是为git存储库设计的,因此它只能用于git存储库中的那些文件。您可以通过修改lsFiles()函数轻松更改此默认行为。

要首先在GVIM1上打开a.txt,请使用

$ gitv gvimr GVIM1 a.txt

如果没有,将打开一个gvim窗口。然后在另一个实例GVIM2上打开相同的a.txt,请使用

$ gitv gvimr GVIM2 a.txt (或者您可以使用$ gvim2 a.txt之类的别名)

然后gitv内部执行以下操作:

  1. 查找所有已打开“ a.txt”的gvim实例。(在这种情况下,为GVIM1)
  2. 将所有这些a.txt缓冲区设置为“只读”,“不可修改”和“自动读取”。
  3. 修改后的缓冲区将在设置为“只读”之前写入磁盘。)
  4. 删除交换文件。
  5. 在GVIM2上重新打开a.txt。(gvim可以毫无问题地打开该文件,因为没有交换文件。)

如果要在监视器1而不是监视器2上编辑a.txt,请执行以下操作以切换活动缓冲区:$ gitv gvimr GVIM1 a.txt(或gvim1 a.txt)可以使用ctrl + g在gvim1内更轻松地完成此操作。 + a.txt

(这将自动在gvim的其他实例中将同一缓冲区设置为“只读”,以防止数据损坏。)

gitv可以在这里下载:http : //code.google.com/p/gitv/ 它仅在linux gvim上进行了测试,但是可以很容易地移植到MacVIM。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.