在 vim 中的特定拆分中打开文件(使用 fzf)

Open file in a specific split in vim (with fzf)

我经常在屏幕上使用一个常见的布局——几个垂直分割,左边的文件树(NerdTree)。

当我需要一个新缓冲区时,我通常希望它进入特定的拆分。例如,想象以下 window 结构:

| file_tree | split1 | split2 |

现在我调用文件列表命令(在我的例子中是 fzf)。当我找到文件名时,我想按 Ctrl+1 打开 split1 中的文件,按 Ctrl+2 打开 split2 中的文件,等等。如何我可以实现这样的快捷方式吗?具体来说,如果可能的话,使用 fzf。

不然体验有点尴尬:

不幸的是,在特定的拆分中打开文件似乎是不可能的。这是因为拆分性质,它是一种缓冲区的动态视口,可以随时在 window 内重新排列(使用 Ctrl+W、Shift+H/J/K/L), 创建和删除。此外,如果您在拆分中有一个未保存的缓冲区,Vim 将不允许您在不保存现有文件的情况下打开一个新文件,在这种情况下,您想要使用的方法也不会奏效.

您始终可以使用快捷键 N、Ctrl+WW 快速切换到某个分组,其中 N 是您的分组编号。您可以使用快捷键 Ctrl+W、h/j/k/l.

在相邻的拆分之间导航

这就是我处理拆分的方式:我通常打开 6 个拆分(2 行和 3 列),而我使用快捷方式打开的 NerdTree 只有我需要它。要在某个拆分中打开文件,我使用快捷方式 N、Ctrl+WW 导航到那里,其中 N 是拆分编号,然后我使用 NerdTree 打开文件(如果我不记得文件名)或 Fzf(当我知道文件名时)。

也许您会发现使用选项卡更方便,在这种情况下,您可以在选择后使用 Ctrl+T 快捷方式在新选项卡中打开每个新文件它在 Fzf。然后您可以使用 gt(向前)和 gT(向后)快捷方式在选项卡之间切换。