vim指定分割窗口,如%

时间:2015-11-03 22:31:30

标签: vim

如果我想在vim中打开一个分割,我会:sp % - 在这种情况下,在我当前的缓冲区和窗口中对文件进行水平分割。 :vsp是垂直的。

现在让我说我已经有一个垂直分割,我在右边的窗口。如果我想将窗口中的文件水平分割到右边而不指定其路径,我该怎么办?我相信我已经通过+,看到了这一点,但我似乎无法找到它,并且对vim这个阴暗的部分一无所知。

视觉表现或我想要的东西

+~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~+
| ./test1           | ./test2           |
| Stuff in my other | I am currently in |
| window            | this file ...     |
| bla foo           |                   |
| bla               |                   |
| bla bar           |                   |
|                   |                   |
|                   | :sp ./te[tab]     |
+~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~+

以上工作,但我想指定左边没有文件名的窗口。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

拆分当前文件

您可以执行以下操作来拆分当前文件,而不指定文件名或function () {}

%

如果您不喜欢命令,可以使用窗口映射:

:sp
:vsp

拆分新文件

使用文件名与<c-w>s <c-w>v :split分开。

:vsplit

就像:split foo.txt :vsplit bar.txt 一样,您可以执行以下操作:

  • :edit完成
  • 通过<tab>
  • 列出完成情况
  • 使用全球,例如<c-d>:sp *foo
  • 使用:sp **/*foo技巧。例如%:e %<.h。请参阅:e %:h/bar.txt
  • 通过:_%的替代文件。例如#。注意::e #可能是更好的选择

拆分为已打开的缓冲区

使用<c-^>作为:sbuffer的拆分变体。

:buffer

使用:sb foo :sb 7 进行垂直拆分。

看到:vert sb的力量:

  • 使用:b完成
  • 使用<tab>列出完成
  • 使用部分文件名。例如<c-d>。适用于:b foo
  • 通配。例如<tab>:b foo*bar
  • 可能希望通过:b foo/**/bar
  • 使用'hidden'
  • set hidden的拆分变体是:b
  • 还接受缓冲区编号

常见的映射:

:sb

窗口管理

移动分割可以通过窗口映射来完成

  • nnoremap <leader>b :ls<cr>:b<space> 向下拆分
  • <c-w>J分开
  • <c-w>K向左移动
  • <c-w>H向右移动

获取更多帮助:

<c-w>L