Command-T for Emacs?

2019-03-28 06:20发布

I'm a long time Emacs user, but partially switched to MacVim 2 years ago, and have been using it for all my programming work (still using Emacs for other stuff). I decided to switch back to Emacs now, mainly because of the awesome evil-mode. I'm quite happy, but I still haven't found something as good and simple as the Vim Command-T plugin.

The main problem with the Emacs alternatives is that they are either too complicated and or slow.

The closest thing to Command-T is helm/helm-cmd-t, but it doesn't quite work like it.

Let's say you have two paths:

  • app/controllers/admin/feedback_controller.rb
  • app/controllers/fee_controller.rb

In Vim's Command-T, you can write:

app/controllers/fe

And it will match both paths.

With helm-cmd-t, if I write app/controllers/fee, it will only match fee_controller. If I want to match both, I have to use a regexp, as in app/controllers/.*, which is not that bad, but requires more keystrokes.

Any suggestions appreciated!

8条回答
We Are One
2楼-- · 2019-03-28 07:01

Any Emacs package that uses ido can do this, provided that ido-flex-match is non-nil. Helm-cmd-t deliberately doesn't support this kind of flexible matching.

You can get the behaviour you describe using find-file-in-repository with ido-flex-match set to 't.

查看更多
爷的心禁止访问
3楼-- · 2019-03-28 07:03

https://github.com/bling/fzf.el

This is the best solution out there in my opinion. Here's why:

  1. Uses projectile to determine project root if you're in a project.
  2. Otherwise it very quickly indexes the file in the current directory.
  3. Fuzzy matching.
  4. Can be customized (top or bottom placement, number of records, etc.)
查看更多
登录 后发表回答