NeoVim:根据 git 分支在打开的选项卡集之间切换

NeoVim:根据 git 分支在打开的选项卡集之间切换

在 git repo 中处理多个不同分支时,我发现自己想要在不同的选项卡中打开不同的文件集。是否有任何插件或方法可以在签出不同分支时“保存”当前打开的选项卡状态,并且当再次签出原始分支时 - 该选项卡集会恢复?理想情况下能够保留几个不同分支的选项卡状态。

运行多个 NeoVim 实例并通过暂停进程来管理它,以某种方式使它们不会因为打开同一个文件而感到不安,这可能是一种选择。

答案1

在 Vim 中切换分支的最大问题是缓冲区、寄存器、历史记录等都是全局的,这使得构建不遵循该模式的工作流程变得非常困难。然后还有交换文件、持久撤消文件等。例如,当您切换分支时,某些文件可能会从您的文件系统中消失,但您必须在 Vim 中删除对它们的任何引用,这可能并不像听起来那么简单。

更经济的策略是将每个分支视为一个单独的项目:

  1. 使用Git 工作树每个分支都有一个“工作树”(阅读“目录”),
  2. 每个工作树有一个编辑器实例。

实际上,它看起来像这样:

$ git worktree add ../this-project_some-branch some-branch
$ cd ../some-branch
$ vim .

每个“项目/工作树/Vim”有一个终端仿真器选项卡,您应该能够获得独立且稳定的环境。

相关内容