如何在 vim 的新选项卡中编辑现有缓冲区?

如何在 vim 的新选项卡中编辑现有缓冲区?

假设我已经像这样启动了 vim:

vim foo bar

现在我决定将每个文件放在各自的选项卡中。有没有办法在不退出 vim 并将选项添加-p到命令行的情况下做到这一点?

答案1

您希望在新标签中打开缓冲区吗?

分割屏幕(Ctrl-W s),打开一个窗口,然后按 Ctrl-W T

答案2

您可以通过结合tab使用命令sb[uffer]命令。

首先,你需要知道你想在新标签页中打开的缓冲区的缓冲区 ID。你可以使用ls命令:

:ls
  1 %a   "foo"                          line 1
  2      "bar"                          line 0

获得 ID 后,您可以轻松地在新选项卡中打开它:

:tab sb 2

sb命令通常会在新的分割窗口中打开给定的缓冲区,但该tab命令却导致它在新选项卡中打开。

tab命令还允许您指定在选项卡列表中创建新选项卡的位置。例如,:0tab sb 2会导致新的“栏”选项卡出现在列表的开头,而不是当前选项卡之后。

答案3

当您以这种方式启动 vim 时,您不会获得 vim 客户端,文本编辑器正在使用终端或 cmd 提示符 - 这两个文件位于两个不同的缓冲区中。使用:ls列出缓冲区:

:ls
  1 %a   "foo"                 line 6
  2      "bar"             line 0

%a 是活动缓冲区。您可以使用:b2切换到缓冲区 2,或者使用:bn循环到下一个或:bp上一个。我更喜欢使用 (CTRL-W v) 垂直分割窗口,而不是使用 (CTRL-W s) 水平分割窗口。

如果你已经加载了 2 个文件,但还没有标签页,那么你可以:tabnew在新标签页中输入:b2

如果你希望始终将缓冲区加载到其自己的选项卡中,请查看本文

答案4

1.在 Vim 中打开两个文件。

$ vim foo bar

2.检查缓冲区的数量。

:ls
  1%a“ foo”
  2“酒吧”

3.链接两个命令:tabnew打开新选项卡并b <buffer_number>在该选项卡中加载所需的缓冲区。

:tabnew | b 2

相关内容