在Vim中管理“窗口本地”缓冲区

3

澄清:在这个上下文中,“window-local buffer”指的是加载到特定窗口的缓冲区,任何未加载到该窗口的其他缓冲区都不是“window-local buffer”。

我之前考虑了一些关于管理缓冲区的方式,我认为有一个“window-local”的缓冲区列表可以提供额外的缓冲区管理方式。但是我不想讨论Vim已经提供的缓冲区管理方式。

而且,这个解决方案很简单,只需要手动记录“window-local”缓冲区,例如: autocmd BufWinEnter * call add(w:buffers, expand('%')) ,并提供相应的接口给“window-local”缓冲区列表w:buffers使用。

你觉得这个方法有用吗?如果有任何建议,欢迎提出。


Windows和选项卡页面是建立在缓冲区之上的抽象,提供更多组织工作区和工作流程的手段。它们当然很有用,但不应该作为您的工作流程的基础。以“缓冲区”为思考方式,在需要时使用窗口和选项卡页面。 - romainl
@romainl 对不起之前的问题有些误导性。我已经做了一些澄清。 - Bohr
2个回答

1

要列出所有打开的缓冲区,请使用以下命令:

:buffers

要打开缓冲区#5,请使用以下代码:

:buffer 5

您可以使用以下映射将两个命令组合在一起:
:nnoremap <F5> :buffers<CR>:buffer<Space>

如何使用这个便捷的映射:

  • 按下F5
  • 输入缓冲区号码
  • 按下<Enter>

更多阅读请点击这里。 (搜索"按数字切换")


我想补充一点,除了数字,您还可以使用缓冲区名称与:buffer一起使用,这样更加方便,而且它还提供了自动完成功能,使事情变得更加简单。 - Dhruva Sagar
:buffer 5 可以进一步缩写为 :b5 - msound

1
缓冲列表是全局的。你可以有一个窗口局部参数列表(使用:arglocal),然后使用:next等命令在它们之间进行导航。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接