linux - 在终端 bash 中列出 vim 中打开的缓冲区

标签 linux bash vim terminal

我打开了两个终端窗口,比如 A 和 B。

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

最佳答案

你需要知道另一个 vim session 的服务器名(它需要你的 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)')")

关于linux - 在终端 bash 中列出 vim 中打开的缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46122821/

相关文章:

c - ip_options_echo 中的 ip 选项时间戳

python - 根据另一个文件中的行号从一个文件中提取行

file - 如何在VIM中用当前文件名替换文本?

algorithm - Vim:排序命令的算法

Vim:重新启动后在新 session 中重新打开所有以前的文件

mysql - 在 Hadoop 中使用 apache Airflow 配置 MySql 时遇到问题

linux - Linux 中的文件系统

linux - 当AWS实例只有16GB时,为什么 `/proc/meminfo`显示32GB?

linux - "sh: line 1: Moved: command not found"使用 curl 安装 npm |嘘

Java 运行时 exec() 不工作