我严格使用 vim,但我在玩 emacs 并且在打开文件时非常喜欢 ido-mode。只需开始输入文件名的一部分,它就会缩小搜索范围,当您想要的文件位于列表的前面时,只需按 Enter。vim有类似的东西吗?我一直在寻找没有运气。
谢谢
有一些不错的快速文件查找器插件,例如 blurfinder http://www.vim.org/scripts/script.php?script_id=1984,可以增强您的体验。(模糊查找器似乎做了模棱两可的选择)
此外,您可能想查看 wildmode 调整选项 ala :he wildmode
我在这里解释的方法不是模棱两可的技巧,但它是标签友好的。
vim 有文件名的制表符补全,但不幸的是,它显示了整个第一个匹配项,而不是像 bash 制表符补全那样在达到歧义时停止。
我认为插件 'command-t' 可能是您正在寻找的: https://wincent.com/products/command-t http://www.vim.org/scripts/script.php?script_id=3025
这个插件将 t 映射到一个函数,该函数打开一个带有过滤的文件列表的窗口。当您开始输入时,文件会被实时过滤,您可以按 Enter 键选择最上面的文件。
根据您要完成的任务,您有以下选项:
如果你想补全从 $HOME、/etc 或其他包含许多文件的目录开始的文件名,你可以试试fuzzyfinder(@michael 提到的)或我的zvim插件(整个插件是alpha,但:ZEdit
命令:ZView
足够稳定)。使用我的插件,您将获得类似于 zsh 的完成,这与您所要求的不完全一样,但它很好。例子:
ZE ++e=u<Tab><Tab> ~/.v/d/z/p/v<Tab>
将扩展为 (with &wildmode="longest,list:full"
)
ZE ++enc=utf-8 ~/.vim/dev/zvim/plugin/z.vim
当然,它要求您知道z.vim
(或您想找到的任何东西)的位置。
// 要安装 zvim,请安装vim-addon-manager和 mercurial 并将call scriptmanager#Activate(["zvim"])
行添加到您的 vimrc。
如果要查找项目文件(当前目录下的文件),请尝试Command-T插件。它需要 ruby 支持和索引文件,因此它不能用于从主目录开始查找文件。
我有同样的问题,解决方法是“:help wildmode”。我个人使用
set wildmenu
set wildmode=longest:full,full