我很惊讶我没能找到这个问题的答案,但也许我忽略了一些显而易见的东西:是否有可能保留一个缓冲区列表每个窗口? 我通常有大约 4 个分割,每个分割通常都有特定的用途:一个分割 CSS,另一个分割 JS,其他几个分割 HTML,等等。
我可能正在寻找一个可以实现这一点的插件。最近我一直在使用 BufExplorer,它有一个设置允许您按选项卡(而不是按窗口)保留其缓冲区列表。
我真的很喜欢 BufExplorer 的 MRU 列表,但我发现它基于我的全局缓冲区列表很烦人 - 我想要的是每个窗口的 MRU 历史记录。
答案1
恕我直言,您真正需要的是一个工作空间管理器。
你可以找到一个适用于 vim @http://www.vim.org/scripts/script.php?script_id=1410
它将为您提供以下命令:
:WsAddFile Add a new file to the workspace.
:WsAddGroup Add a new group to the workspace.
:WsClose Close the workspace window.
:WsInsertFile Insert a file.
:WsInsertGroup Insert a group.
:WsOpen Open a workspace and display it in a window.
:WsRun Run a command using the selected unquoted file names.
:WsRunq Run a command using the selected quoted file names.
:WsSave Save the workspace.
:WsSessionOpen Open the workspace and Vim session.
:WsSessionSave Save the workspace and the Vim session.
:WsToggle Open or Close the workspace window.
我在自己的电脑上发布了一张使用工作区管理器的屏幕截图,其中有 4 个以上的窗口脸书,您可以在那里查看它(它是公开的)。
它并不完全是您想要的缓冲区列表,但您可以在不同的窗口中打开文件,也可以在同一个窗口中的多个缓冲区中打开文件。
在后一种情况下,工作区管理器将充当缓冲区列表。如您在屏幕截图中看到的,我将文件分组到不同的组中。
这已经是你能得到的最接近的结果了,AFIK。
再会。
答案2
为什么要将这种级别的窗口管理强行塞进 vim?我确实偶尔会使用分割窗口 - 我将 Ctrl-F 映射到分割窗口中出现的文件内查找样式的 grep 命令,并且我有时也会使用 vimdiff。
但是你真的想要在 vim 中进行永久窗口管理吗?PuTTY 连接管理器和各种终端仿真器可让你按需要分割终端,然后在每个终端中运行单独的 vim 会话。
答案3
在左侧打开 NERDTree。>
我打开了多个缓冲区(主视图中只有一个可见...称之为“缓冲区 1”)
我现在转到 NERDTree 并选择另一个我只想快速查看或从中复制一些内容的文件。因此,我从 NERDTree 打开该文件,并且缓冲区 1 已正确隐藏,我现在正在查看我刚刚打开的缓冲区(称为缓冲区 2)
我现在想完全退出这个缓冲区 2 并返回编辑缓冲区 1,但是当我在缓冲区 2 上执行 :q 时,我最终只看到一个大的 NERDTree,我必须重新显示缓冲区 1。... [显示其余引用]
我不使用 Nerdtree,但听起来您应该输入 Ctrl-^(可能是 Ctrl + 6 键)来切换回缓冲区 1。
答案4
这不是完整的答案,但似乎 vim 为每个窗口保留了单独的 # 和 % 缓冲区。因此,您可以在一个窗口中快速切换两个文件(使用 CTRL-^),在另一个窗口中切换两个不同的文件。不过,缓冲区列表仍然是您添加的所有缓冲区。