一种快速/ git高效的方式来打开large()repo(〜9.8k文件)下的任何文件.
我尝试了各种解决方案,比如Textmate.el和find-file-in-repository.我通过之前的SO问题找到了这些解决方案,例如this和this以及LocateFilesAnywhere EmacsWiki.
虽然这两种解决方案都适用于小型到mdeium回收,但在这种情况下,它们几乎无法使用.当我开始输入文件名时,在看到任何结果之前有几秒钟的延迟.而改变搜索的任何部分也非常滞后.
我认为主要问题是在键入任何字符时,emacs/ find-file-in-repository启动一个shell命令(git ls-files...).当我停止打字时,我真的只需要这样做.
find-file-in-repository,我希望只有在我停止输入时才调用find-command(比如说300ms的间隙).在vim中,有一个名为command-t的神奇插件,它允许您模糊搜索项目中的所有文件.我们有一个相当大的rails应用程序,有大量的文件,它能够处理它几乎没有任何减速.
尝试了一些事情(比如ffip,textmate.el的命令-t和rinari的rinari-find-in-project).用户界面非常棒(我<3 flex),但他们都遇到的问题是在一个大型项目中,性能很差,无法使用.
目前我正在更多地使用rinaris导航命令和ido-find-file.在它们两者之间它是一个可用的设置,但在项目中有一个疯狂的快速模糊查找会很好.
有没有人知道一个更高性能的脚本然后我尝试了什么?
我是很长时间的Emacs用户,但2年前部分切换到MacVim,并且已经将它用于我的所有编程工作(仍然使用Emacs进行其他工作).我决定现在切换回Emacs,主要是因为它很棒evil-mode.我很高兴,但我仍然没有找到像Vim Command-T插件一样简单的东西.
Emacs替代方案的主要问题是它们太复杂或太慢.
最接近Command-T的是helm/ helm-cmd-t,但它并不像它那样工作.
假设您有两条路径:
app/controllers/admin/feedback_controller.rbapp/controllers/fee_controller.rb在Vim的Command-T中,你可以写:
app/controllers/fe
Run Code Online (Sandbox Code Playgroud)
它将匹配两条路径.
有了helm-cmd-t,如果我写的app/controllers/fee,它只会匹配fee_controller.如果我想要匹配两者,我必须使用正则表达式,如同app/controllers/.*,这不是那么糟糕,但需要更多的击键.
任何建议赞赏!