7

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

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

| file_tree | split1 | split2 |

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

不然体验有点尴尬:

  • 我总是可以打开一个新的 vsplit,但是我需要关闭其他一些(因为现在太多了),它们被重新洗牌,等等。
  • 我可以先关注一个特定的拆分,然后调用文件列表命令。那行得通,但是我一直忘记这一点,并且有一半的时间我一直在小file_tree拆分中打开文件。
4

1 回答 1

3

不幸的是,在特定拆分中打开文件似乎是不可能的。这是因为拆分性质,它是一种缓冲区的动态视口,可以随时在窗口内重新排列(使用快捷键,如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(当我知道文件名)。

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

于 2020-03-07T13:59:40.020 回答