与Eclipse类似的Emacs命令查找和打开文件

时间:2015-04-20 18:17:06

标签: eclipse emacs

我最近从使用Eclipse转为emacs。我正在尝试找到一种方法来模拟eclipse的Ctrl-Shft-r功能,它允许您输入文件名,它开始显示当前工作区中以您键入的字符串开头的所有文件。

C-x C-f似乎只处理当前目录中的tab-completion,而Eclipse的功能查看所有子目录以查找匹配的文件。

我正在寻找一些东西(也许有一个插件可以执行此操作),它允许您键入要查看的文件夹的名称,然后是部分文件并将结果返回到缓冲区中。可能是使用auto-complete来列出匹配文件的完整路径。

2 个答案:

答案 0 :(得分:3)

首先,避开vanilla find-file函数(这是您点击C-x C-f时运行的交互式函数)。这是非常有限的,它迫使你一直打TAB,而大多数人在切换到emacs时所做的第一件事就是用更强大的东西替换find-file

有很多选择。 ido-mode是一个,helm是另一个。前者重量轻,速度快,内置emacs功能。后者非常强大,也力求快速。

其次,通常可以通过两种方式进行递归文件搜索:

  1. 目录搜索 - 就在您搜索目录时,这里没有任何意外;
  2. 项目搜索 - 当您设置正在处理的项目时,就会让emacs知道您现在感兴趣的文件。
  3. 对于目录搜索,ido-find-filehelm-find-file都是可行的选项。当你暂停打字时,Ido会自动进行搜索; helm使用(C-u) M-g s激活grep。有关详细信息,请参阅this SO question

    对于项目搜索,您需要一个库来管理您的项目。 Projectile非常棒。设置它并使用C-c p fC-c p F分别列出当前或所有项目中的文件。哦,并且projectile默认使用ido,但也有is helm支持。

答案 1 :(得分:1)

您正在寻找为项目文件编制索引的projectile。我用了一段时间,但最近改用了helm-recentf

(global-set-key "\C-x\ \C-r" 'helm-recentf)

我将最近的文件设置为大量。几乎所有我打过的东西都是几次击键。这甚至可以成为切换缓冲区的便捷方式。

(require 'recentf)
(setq recentf-auto-cleanup 'never)
(recentf-mode 1)
(setq recentf-max-saved-items 200)
相关问题