2012-04-19 98 views
6

当我想在vim中打开一个文件时,输入:e查看磁盘上的目录(set wildmenu)。 Vim显示了我的目录列表,然后我多次按Tab键选择我需要的目录,并且当我选择该目录时(vim突出显示它),我应该如何在当前级别停止完成并进入该目录?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." 

怎么做,在命令行模式?

回答

10

我认为它按Ctrlê在命令模式

vim docs

     *complete_CTRL-E* 

当完成激活,您可以使用CTRL-E来停止并返回到 最初键入的文本。 CTRL-E不会被插入。

我在我的gVim中试过这个,它工作正常。

编辑:感谢的建议由@弗朗索瓦,按Ctrld确实有一些额外的信息是一样的。即它停止在当前等级完成并且还示出当前选择的

喜欢的东西

: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目录水平停止完成。

+0

谢谢,正是我所搜索的。 – 2012-04-19 05:22:18

+5

请注意,ctrl-D具有相同的效果,但也会列出文件夹的内容。更一般地说,它将“列出与光标前面的模式相匹配的名称”(请参阅​​:help c_ctrl-D)。 – 2012-04-19 07:56:17

+0

@弗朗索瓦感谢队友!我更新了我的回答,以反映你的建议 – 2012-04-19 08:07:00

1

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

例如,你在当前目录下面的文件结构:

- a 
- b 
    - c 
    - d

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

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

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

+1

这就是我现在要做的,但在我看来这是无效的。我认为应该有更好的方法来做到这一点。 – 2012-04-19 05:06:35

+0

对不起。我没有完全理解你的问题。 – 2012-04-19 05:32:40

0

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