在Vim中使用模糊搜索打开文件

mnemlml8  于 2022-11-11  发布在  其他
关注(0)|答案(4)|浏览(387)

我正在寻找一种方法,使Vim有能力通过模糊搜索文件名来打开文件。
基本上,我希望能够定义一个项目一次,然后有一个快捷方式,这将给我一个地方键入一个文件名,并将匹配,如果任何字母匹配。
这种功能存在于我见过的大多数编辑器中,但我一辈子都不明白如何让Vim做到这一点。
请注意,我正在寻找的东西,不会要求我有任何想法,在我的目录树中的文件是。我只是希望能够打开它的文件名,无论它在什么目录。
谢谢

dwthyt8l

dwthyt8l1#

有两个很棒的Vim插件。

第一次访问:

  • 用纯VimL语言编写
  • 在任何地方都适用
  • 支持自定义查找器以提高性能
  • 最流行的Vim模糊搜索插件
    Command-T
  • 用C、VimL和Ruby编写
  • 快速开箱
  • 需要Vim中的+ruby支持
  • 建议Vim版本〉= 7.3
    编辑:

我使用CtrlPag作为我的自定义查找器,它的速度非常快(即使是在大型项目中),而且非常便携。
agCtrlP配合使用的示例:

if executable('ag')
  " Use Ag over Grep
  set grepprg=ag\ --nogroup\ --nocolor

  " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
  let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
endif
mctunoxg

mctunoxg2#

CommandT for Vim与TextMate中的功能非常相似。
1)打开MacVim
2):cd ~/我的项目
3)(我已按照安装帮助中的说明进行了Map)
4)C-v the file以垂直分割方式开启档案,或CR以开启新的水平分割。
5)要关闭分割,请用途:bd(缓冲区删除)
6)要切换到另一个缓冲区,我已经安装了BufferExplorer,所以只需\并选择
这个工作流程与TextMate相当,需要一段时间来适应,我还在学习中。

bd1hkmkf

bd1hkmkf3#

碱性溶液

只需将其添加到您的.vimrc

nnoremap <C-p> :find ./**/*

按下Ctrl+p将允许您模糊查找当前工作目录及其子目录中的文件。使用Tab键可以在选项之间循环。

相关解决方案

对于那些想保持基本的,即没有插件的人来说,这个有趣的video展示了另一种在Vim中实现模糊文件查找的方法。
他们实际上使用

set path+=**
set wildmenu

以查找当前子目录中的文件。
例如,如果:find *Murph后面跟着tab键,我会在subdir code 中找到文件 KilianMurphy2012Why.RKilianMurphy2014ROLE.R,我可以使用tab键循环查看这些文件。
请注意,您的当前工作目录很重要,并且您的路径(:set path?)上的其他文件也可以在这种类型的解决方案中找到。wildmenu选项用于添加可视信息,但不是必需的。
对于键盘快捷键,请添加

nnoremap <C-p> :find *

现在您可以在正常模式下使用Ctrl+p快速搜索项目/当前目录中的文件。

相关问题