Vim的ido模式文件名是什么?

3
我严格使用vim,但是我尝试了emacs并喜欢上了ido-mode的文件打开方式。只需要输入文件名的一部分,它就会缩小搜索范围,当你想要的文件出现在列表前面时,只需按回车键即可。vim有类似的功能吗?我已经搜索了很久也没有找到。谢谢。
5个回答

3

1

Vim具有文件名的制表符完成功能,但不幸的是,它显示整个第一个匹配项,而不是像bash制表符完成一样在达到歧义时停止。


4
这实际上是可配置的:尝试 :set wildmode=list:longest; 这类似于bash的行为。 - daniel kullmann

0

根据您想要完成的任务,您有以下选项:

  1. 如果你想要完成以 $HOME、/etc 或其他包含许多文件的目录开头的文件名,你可以尝试模糊查找器(由 @michael 提到)或我的 zvim 插件(整个插件处于 alpha 版本,但 :ZEdit:ZView 命令足够稳定)。使用我的插件,你将获得类似于 zsh 的自动补全,虽然不完全符合你的要求,但也很好。例如:

    ZE ++e=u<Tab><Tab> ~/.v/d/z/p/v<Tab>
    

    将会扩展为(使用 &wildmode="longest,list:full"

    ZE ++enc=utf-8 ~/.vim/dev/zvim/plugin/z.vim
    

    当然,这需要你知道 z.vim(或任何你想要查找的文件)位于哪里。

    // 要安装 zvim,请安装 vim-addon-manager 和 mercurial,并在你的 vimrc 中添加 call scriptmanager#Activate(["zvim"]) 行。

  2. 如果你想要查找项目文件(当前目录下的文件),可以尝试 Command-T 插件。它需要 ruby 支持并索引文件,因此无法用于查找以 home 目录开头的文件。


0
我认为插件'command-t'可能是您要找的: https://wincent.com/products/command-t http://www.vim.org/scripts/script.php?script_id=3025 该插件将t映射到一个函数,该函数打开一个带有过滤文件列表的窗口。当您开始输入时,文件会实时过滤,您可以按Enter键选择最顶部的文件。

0

我有同样的问题,解决方法是“:help wildmode”。我个人使用

set wildmenu
set wildmode=longest:full,full

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接