我想为Emacs实现Resharper的"Go To File"功能.当按下提到的快捷方式时,Resharper弹出一个接受通配符字符串的文本框,并显示一个自动完成菜单,列出项目中与该通配符匹配的所有文件:
"转到文件"对话框http://www.jetbrains.com/resharper/features/screenshots/50/navigation_gotofile.png
就目前而言,我知道一种粗略的方式来实现或多或少等同的东西.它涉及运行diredwith -lR然后调用dired-isearch-filenames- 这将开始对某些根目录中的整个文件层次结构进行增量搜索.
UPD.我也知道打开缓冲区的选项,将它们全部保存在内存中并使用switch-to-buffer.这个解决方案可以很好地使用ido,但它不是100%防弹(如果添加或删除某些文件会怎么样?).它也不能很好地使用tabbar,因为选项卡将显示项目中包含的所有文件,但不会显示代表我当前上下文的项目的子集.
但是,这显示了许多不必要的信息,缺乏自动完成功能.我已经采取一看ido和icicles,但他们似乎只在当前目录下浅的工作.是否有Emacs插件可以帮助我实现目标?
虽然您可能不希望打开大量缓冲区,但您可以将IDO挂钩到recentf跟踪最近打开的文件:
(recentf-mode 1)
(setq recentf-max-saved-items 300)
(defun ido-choose-from-recentf ()
"Use ido to select a recently opened file from the `recentf-list'"
(interactive)
(find-file (ido-completing-read "Open file: " recentf-list nil t)))
(global-set-key [(meta f11)] 'ido-choose-from-recentf)
Run Code Online (Sandbox Code Playgroud)
多年来我一直在使用这个技巧,它是我需要的所有文件切换的99%.
除此之外,我用的M-x rgrep,你可能也想看看M-x find-dired和M-x find-grep-dired.
如需更多选项,请查看此类似问题的答案.
| 归档时间: |
|
| 查看次数: |
2385 次 |
| 最近记录: |