【问题标题】:List open buffers in vim in a terminal bash在终端 bash 中列出 vim 中的打开缓冲区
【发布时间】:2017-09-08 18:46:11
【问题描述】:

我打开了两个终端窗口,分别是 A 和 B。

我在终端 A 中打开了 vim。我想去终端 B 并获取终端 A 中当前 vim 中的缓冲区列表。

【问题讨论】:

    标签: linux bash vim terminal


    【解决方案1】:

    您需要知道另一个 vim 会话的服务器名称(它需要使用正确的选项编译您的 vim 风格),从那里您应该能够询问您想要的任何内容。

    要了解每个实例中的服务器名称,请输入:echo v:servername。你也可以通过:echo serverlist()获取所有vim服务器的列表。

    当我读到:h x11-clientserver 时,正如你所说的终端,这意味着你需要使用--servername 选项显式运行vim——我总是尽可能使用gvim,所以我不确定了解用例中的每一个细节。这意味着,您必须知道其他服务器名称。

    假设您在终端 B 中使用 $> vim --servername=termB whateverotheroptions 启动了 vim

    因为打开的缓冲区列表(不是窗口)可以通过

    获得
    :echo filter(map(range(1, bufnr('$')), 'bufname(v:val)'), '!empty(v:val)')
    

    从终端 A 中的 Vim,您可以执行:

    :echo remote_expr('termB', "filter(map(range(1, bufnr('$')), 'bufname(v:val)'), '!empty(v:val)')")
    

    【讨论】:

      猜你喜欢
      • 2021-09-03
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2011-06-02
      • 2011-07-05
      • 1970-01-01
      相关资源
      最近更新 更多