7

当我想在 vim 中打开文件时,我输入 :e 以查看磁盘上的目录(设置 wildmenu)。Vim 向我显示了我拥有的目录列表,然后我按 Tab 几次以选择我需要的目录,当我选择该目录时(vim 突出显示它)我应该怎么做才能停止当前级别的完成并进入该目录?

我知道在插入模式完成它是 ctrl-y,来自 vim 帮助文件:

                        *complete_CTRL-Y*
When the popup menu is displayed you can use CTRL-Y to stop completion and
accept the currently selected entry.  The CTRL-Y is not inserted.  Typing a
space, Enter, or some other unprintable character will leave completion mode
and insert that typed character."

如何在命令模式下做到这一点?

4

3 回答 3

16

我认为它Ctrl E处于命令模式

vim 文档

                        *complete_CTRL-E*

当完成处于活动状态时,您可以使用 CTRL-E 停止它并返回到最初键入的文本。不会插入 CTRL-E。

我在我的 gVim 中尝试了这个并且它有效。

编辑:感谢@François 的建议,Ctrl D用一些额外的信息做同样的事情。即它在当前级别停止完成并且还显示当前选择的内容

就像是

:e eclipse-cpp-indigo-SR2-incubation-win32-x86_64\eclipse\ <Ctrl><D>
artifacts.xml   eclipse.exe     epl-v10.html    p2\
configuration\  eclipse.ini     features\       plugins\
dropins\        eclipsec.exe    notice.html     readme\

eclipse除了在 eclipse 目录级别停止完成之外,它还显示文件夹内的内容。

于 2012-04-19T05:15:55.190 回答
2

当您按 Tab 键到达所需目录时,按右箭头键(或键入一个字符并删除它)。完成后,使用该目录作为基础目录并遍历其子目录。

例如,您在当前目录中有以下文件结构:

- 一个
- b
  - C
    -d

您键入 e 命令并按 Tab 键。第一个建议的目录是 a。再次按 Tab 键选择下一个目录 - b。现在按右箭头键。之后选择 b 目录并在其中开始完成。

正如我之前所说,您可以键入一个字符并删除它。如果您留下一个字符(或一系列字符,例如前缀),它将用作过滤器(仅选择名称以前缀开头的目录)。

我认为还有其他解决方案。但是以上两个对我来说已经足够了。

于 2012-04-19T05:05:14.013 回答
0

还有一个选择:当我想选择并继续时,我只需输入另一个“/”并继续跳格。在我的状态栏中看起来有点难看,但这是一次击键,我不必离开我的主行。

于 2013-08-12T22:19:53.037 回答