代码之家  ›  专栏  ›  技术社区  ›  codeape

在多个监视器上使用VIM

  •  20
  • codeape  · 技术社区  · 15 年前

    我有三台监视器。

    我通常在每个监视器上运行一个最大化的xterm,连接到同一个监视器上 GNU screen 会议。

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

    • 每个VIM窗口显示不同的VIM选项卡
    • 所有窗口之间共享的VIM设置
    • 无法获取“交换文件…已经存在!”如果在两个选项卡上打开同一文件,则会显示错误消息。
    4 回复  |  直到 15 年前
        1
  •  13
  •   codeape    15 年前

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

    http://github.com/codeape2/vim-multiple-monitors

    它使用swapexists autocmd指示另一个实例在检测到现有交换文件时打开文件。

        2
  •  5
  •   Lie Ryan Bryan    15 年前

    你可以用 vim 在下面 screen .

    $ screen
    $ vim
    
    # on another terminal 
    $ screen -x
    # the same vim screen
    

    如果您的终端模拟器支持tabbing(例如gnome终端),您可以将其用作tabbing(imho,gnome终端的tabbing支持比vim自己的更好,除非您可能无法在不同的vim会话之间复制和粘贴,但是您可以使用系统复制粘贴缓冲区:“+y和”+p)。

    但是,如果你使用的是GVIM,这是不起作用的。

        3
  •  3
  •   Herbert Sitz    15 年前

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

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

    如果更改的文件保存在一个实例中,当您返回到另一个VIM实例中的文件时,您将收到一条消息,“文件自编辑开始后已更改”,并询问您是否要重新加载该文件(该文件将加载另一个实例保存的更改,而不考虑任何更改yo你在目前的情况下做的)。

        4
  •  1
  •   user3034472    11 年前

    Neovim 是一个旨在提供像tmux这样的vim附加/分离特性的项目。 此功能尚未实施(2015年6月19日),但可能很快就会实现。

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

    推荐文章