命令-T为Emacs?(Command-T for Emacs?)

2019-08-18 00:49发布

我是一个很长一段时间的Emacs用户,但2年前部分切换到的MacVim,并一直在使用它为我所有的编程工作(仍然使用Emacs其他的东西)。 我决定现在切换回Emacs的,该真棒主要是因为evil-mode 。 我很高兴,但我仍然没有找到的好,简单,因为不是Vim 命令-T插件。

与Emacs的替代品的主要问题是,他们是不是太复杂,还是慢。

最接近的事到命令-T是helm / helm-cmd-t但也并非完全奏效喜欢它。

比方说,你有两条路:

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

在Vim的命令-T,你可以这样写:

app/controllers/fe

它将匹配两条路径。

随着helm-cmd-t如果我写app/controllers/fee ,只会匹配fee_controller 。 如果我想匹配这两个,我必须使用正则表达式,如app/controllers/.* ,这并不 ,但需要更多的击键。

任何建议表示赞赏!

Answer 1:

使用IDO能做到这一点的任何Emacs的包,提供了ido-flex-match是非零。 头盔-CMD-T 故意不支持这种灵活的匹配 。

你可以让你描述使用行为发现,文件中存储库与ido-flex-match设置为't



Answer 2:

我已经用最近开始flxido-modeprojectile它特别好,排名模糊匹配,具有非常相似的感觉CtrlP和CMDT Vim的。

它可以通过MELPA安装。

M-x package-install
flx

欲了解更多信息请参阅FLX项目 。

这里有一个screengrab说明...



Answer 3:

这是的,但首先安装所需的掌舵: https://github.com/emacs-helm/helm-cmd-t

编辑 :见我的头盔指导 。 了解为什么它是强大的 。 见helmprojectile在该节的行动。

随着模糊搜索像伊多+ FLX或Vim中的一样,你必须类的东西。 有了头盔,您可以执行乱序 matching.I叫出来的顺序,因为我是否进入“main.c中86”或“86的main.c”,我得到了相同的结果集的任何查询。 但是,这也有道理称之为多步骤搜索。 不必以有序的方式进入搜索字符串(称为“模式”,这实际上是正则表达式),头盔给了我更大的自由:我可以进入,我想先在我的脑海里,而不必记住它的复杂路径的事; 如果有从我想要的目标很多考生,我有更多的细节(模式)缩小它进一步。

上述的例子来说明从上述的优点的两种情况:

  • 如果我的愿望的目标不是唯一的,罚款我可以进一步缩小。
  • 如果我的愿望的目标是独一无二的,我可以马上得到它。

正如你所看到的,在Linux内核源代码树包含比40kfiles多了,我马上把范围缩小到几个文件。

Visual Studio中也实现了自己的项目寻找这个机制,但它不是一般的头盔。 在头盔,你可以重复使用很多其他的事情一样头盔界面; 例如,参见helm-semantic-or-imenu 。 你有什么样的大纲树,但你可以交互式的和渐进窄你想用几个简单的模式候选人。

最后,仅供参考, flx作者-乐王-使用头盔。



Answer 4:

你有没有尝试LustyExplorer ? 它是基于Vim的插件具有相同的名称。

此外,它看起来像您不使用Command-T键,以尽自己最大的能力: acfe应该够它来搭配这两个文件。 你要做的不是特别好过:e app/con*/**/fe<Tab>



Answer 5:

我曾经跨越运行gpicker宣传该速度作为其优势超过伊等“本土”的elisp包。 从来没有尝试一下在现实世界的项目,虽然,但它可能为你工作。



Answer 6:

长话短说 - 有什么能比得上命令-T为Emacs。 最好的选择是gpicker或Peepcode的peepopen,但它们是外部应用程序,我觉得他们是使用命令-T了这么久之后分心。 我会坚持的MacVim现在,因为命令-T的唯一,但可能会考虑实施一些行为就像命令-T作为练习。

谢谢大家的答案和评论!



Answer 7:

给textmate.el试试:) https://github.com/defunkt/textmate.el

你只需要使用“命令+ T”,而不是“按Ctrl + P” :)



Answer 8:

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

这是在我看来,目前最好的解决方案。 这是因为:

  1. 用途弹丸,以确定项目的根,如果你在一个项目是。
  2. 否则,它很快指数在当前目录中的文件。
  3. 模糊匹配。
  4. 可定制(顶部或底部的位置,记录数等)


文章来源: Command-T for Emacs?