我经常在屏幕上使用一个常见的布局 - 一些垂直拆分,左侧的文件树(NerdTree)。
当我需要一个新的缓冲区时,我通常希望它进入一个特定的拆分。例如,想象以下窗口结构:
| file_tree | split1 | split2 |
现在我调用文件列表命令(在我的例子中是 fzf)。当我找到文件名时,我想按诸如Ctrl+1在 中打开文件split1、Ctrl+2在 中打开文件split2等。如何实现这样的快捷方式?具体来说,如果可能的话,使用 fzf。
不然体验有点尴尬:
file_tree拆分中打开文件。不幸的是,在特定的分割中打开文件似乎是不可能的。这是因为分割性质,它是一种缓冲区的动态视口,可以随时在窗口内重新排列(使用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(向后)快捷键在选项卡之间切换。