【问题标题】:Emacs, anything and the Everything search tool under Windows 7Windows 7 下的 Emacs、anything 和 Everything 搜索工具
【发布时间】:2013-09-17 13:34:03
【问题描述】:

我正在努力让 Everything 在 Windows 7 上的 Emacs 24.3.1 中与 anything 一起使用。最终我想使用 anything-locate 来浏览代码目录和子目录,正如this question 的答案中所建议的那样。我曾经做过一次,简单地说,似乎 anything-locate 工作,但我改变了一些东西,无法恢复。

当我输入M-x anything-locate(或者,使用helm、M-x helm-locate)时,我收到pattern: 提示,但是当我输入搜索词时,我收到如下错误消息:

Locate
'es' is not recognized as an internal or external command,
operable program or batch file.

我假设但不确定这是否与es.exe 有关,这是 Everything 的命令行版本。在我的初始化文件中,我有这个:

(add-to-list 'load-path "~/.emacs.d/.emacs.d/elpa/everything")
(setq everything-ffap-integration nil)
(setq everything-cmd "~/.emacs.d/.emacs.d/elpa/everything/es.exe")
(require 'everything)

...我已经编辑了everything.el,以便

(defcustom everything-cmd "c:/Programme/Everything/es.exe" "Path to es.exe."

现在的行是:

(defcustom everything-cmd "~/.emacs.d/.emacs.d/elpa/everything/es.exe" "Path to es.exe."

(请注意,尽管上面使用了“~/”约定,但实际上路径完全符合 c:/blah/blah/blah/.emacs.d/)

我希望这能让 Emacs 找到 es.exe。然而它仍然抛出错误信息。有关如何解决此问题的任何想法?

【问题讨论】:

  • 任何东西都已经死了一段时间了,你真的应该试试它的继任者Helm。
  • 我看不到安装 Helm 的简单方法,除非从 Git 安装。 Anything 已经够糟糕了……
  • Helm 在 Marmalade 和 MELPA 中有包。它还有一个 el-get 食谱。安装没有比这更容易了:-)
  • 不幸的是,我的包多次失败 - 如果您想查看一个可以工作的包系统,请查看 R。但是,我今天再次尝试并设法将 helm 安装在之前它发出的位置。但是,使用 M-x helm-locate 会给我与 anything 相同的错误消息('es' not recognized)。
  • es.exe 的路径是否正确?使用 Helm,我的初始化文件中有 (setq everything-cmd "C:/Program Files/Everything/es.exe"),然后设置参数 (setq helm-c-locate-command "es %s -r %s")。

标签: emacs


【解决方案1】:

我知道这很旧,但是当我遇到与 helm 相同的问题时,我发现了这个问题,所以它可能很有用。 问题是 emacs 如何指定 PATH 与 windows 如何执行它之间的冲突(类似于 juanleon 的建议)。 解决方案是删除所有在 emacs 中修改路径的表单,而只需将 es.exe 添加到 windows 路径。 es.exe是voidtools下载页面底部的一个额外下载,在旧版本下面,找了好久。

【讨论】:

    【解决方案2】:

    Windows shell(不管它是什么)可能不知道如何扩展“~/”(即使 emacs 确实理解它)。

    一个非常快速的测试是将es.exe复制到“c:\es.exe”中,然后通过适当更改everything-cmd的配置来重复测试;如果它有效,那么只需使用整个路径。

    【讨论】:

    • 一个合理的假设,但实际上路径是完全限定的 - 我只是使用“~/”约定来保护一些隐私,因为路径名非常有用。
    • 通过查看anything.el 代码,我可以推断该文件存在于您配置的路径中(如果不存在,错误消息会有所不同)。但是,“命令启动器”找不到该文件。可能存在引用问题(例如目录中的空格)。
    猜你喜欢
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    相关资源
    最近更新 更多