我最近从使用Eclipse转为emacs。我正在尝试找到一种方法来模拟eclipse的Ctrl-Shft-r功能,它允许您输入文件名,它开始显示当前工作区中以您键入的字符串开头的所有文件。
C-x C-f似乎只处理当前目录中的tab-completion,而Eclipse的功能查看所有子目录以查找匹配的文件。
我正在寻找一些东西(也许有一个插件可以执行此操作),它允许您键入要查看的文件夹的名称,然后是部分文件并将结果返回到缓冲区中。可能是使用auto-complete来列出匹配文件的完整路径。
答案 0 :(得分:3)
首先,避开vanilla find-file
函数(这是您点击C-x C-f
时运行的交互式函数)。这是非常有限的,它迫使你一直打TAB
,而大多数人在切换到emacs时所做的第一件事就是用更强大的东西替换find-file
。
有很多选择。 ido-mode是一个,helm是另一个。前者重量轻,速度快,内置emacs功能。后者非常强大,也力求快速。
其次,通常可以通过两种方式进行递归文件搜索:
对于目录搜索,ido-find-file
和helm-find-file
都是可行的选项。当你暂停打字时,Ido会自动进行搜索; helm使用(C-u) M-g s
激活grep。有关详细信息,请参阅this SO question。
对于项目搜索,您需要一个库来管理您的项目。 Projectile非常棒。设置它并使用C-c p f
或C-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)