类似于 Eclipse 的 Emacs 命令来查找和打开文件
Emacs command to Find and Open File similar to Eclipse
我最近从使用 Eclipse 切换到了 emacs。我正在尝试找到一种方法来模拟 eclipse 的 Ctrl-Shift-r 功能,它允许您输入文件名,然后它开始显示当前工作区中以您输入的字符串开头的所有文件。
C-x C-f 似乎只处理当前目录中的制表符完成,而 Eclipse 的功能会遍历所有子目录以找到匹配的文件。
我正在寻找一些东西(也许有一个插件可以做到这一点),它允许您输入要查找的文件夹的名称,然后输入部分文件,然后 returns 将结果返回缓冲区.可能使用自动完成来列出匹配文件及其完整路径。
首先,避开原版 find-file
功能(即当您点击 C-x C-f
时 运行 的交互功能)。它非常有限,它迫使你一直点击 TAB
,大多数人在切换到 emacs 时做的第一件事就是用更强大的东西替换 find-file
。
有多种选择。 ido-mode is one, helm 是另一个。前者重量轻、速度快,并且内置于 emacs 中。后者非常强大,而且力求速度也很快。
其次,递归文件搜索通常有两种方法:
- 目录搜索 - 就是搜索目录的时候,这里没有惊喜;
- 项目搜索 - 就是在您设置您正在处理的项目时,让 emacs 知道您现在对哪些文件感兴趣。
对于目录搜索,ido-find-file
和 helm-find-file
都是可行的选项。当您暂停输入时,Ido 会自动进行搜索; helm 使用 (C-u) M-g s
激活 grep。有关详细信息,请参阅 this SO question。
对于项目搜索,您需要一个图书馆来管理您的项目。 Projectile is great for that. Set it up and use C-c p f
or C-c p F
to list files in current or all of your projects, respectively. Oh, and projectile uses ido by default, but there is 也有头盔支撑。
您正在寻找 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)
我最近从使用 Eclipse 切换到了 emacs。我正在尝试找到一种方法来模拟 eclipse 的 Ctrl-Shift-r 功能,它允许您输入文件名,然后它开始显示当前工作区中以您输入的字符串开头的所有文件。
C-x C-f 似乎只处理当前目录中的制表符完成,而 Eclipse 的功能会遍历所有子目录以找到匹配的文件。
我正在寻找一些东西(也许有一个插件可以做到这一点),它允许您输入要查找的文件夹的名称,然后输入部分文件,然后 returns 将结果返回缓冲区.可能使用自动完成来列出匹配文件及其完整路径。
首先,避开原版 find-file
功能(即当您点击 C-x C-f
时 运行 的交互功能)。它非常有限,它迫使你一直点击 TAB
,大多数人在切换到 emacs 时做的第一件事就是用更强大的东西替换 find-file
。
有多种选择。 ido-mode is one, helm 是另一个。前者重量轻、速度快,并且内置于 emacs 中。后者非常强大,而且力求速度也很快。
其次,递归文件搜索通常有两种方法:
- 目录搜索 - 就是搜索目录的时候,这里没有惊喜;
- 项目搜索 - 就是在您设置您正在处理的项目时,让 emacs 知道您现在对哪些文件感兴趣。
对于目录搜索,ido-find-file
和 helm-find-file
都是可行的选项。当您暂停输入时,Ido 会自动进行搜索; helm 使用 (C-u) M-g s
激活 grep。有关详细信息,请参阅 this SO question。
对于项目搜索,您需要一个图书馆来管理您的项目。 Projectile is great for that. Set it up and use C-c p f
or C-c p F
to list files in current or all of your projects, respectively. Oh, and projectile uses ido by default, but there is 也有头盔支撑。
您正在寻找 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)