M-x查询,M-x lgrep,M-x rgrep不工作EmacsW32我。

我做M-x lgrep和它所说的查询不是一个命令:

grep -i -n "hello" * NUL
'grep' is not recognized as an internal or external command,
operable program or batch file.

Grep finished with no matches found at Sun Jan 31 05:59:06

还有那是什么NUL的事情吗?EmacsW32主页说,它的船只与Gnuwin32公用事业,但它似乎工作的配置来实际使用的Gnuwin32查询是留给用户。

我怎么能配置,以使用的运Gnuwin32查询或cygwin查询?都好吗?

有帮助吗?

解决方案

这篇文章对如何得到这个工作的一些技巧。

我得到这个工作了一天,您可以设置在Emacs PATH环境变量,如果你有Cygwin和/或gnuw32装只需设置路径的。这是从我的.emacs片段这适用于仅适用于Windows。我(的cygwin斌,GNU斌)设置为变量到安装程序的路径。然后建立路径的。一个缺点是它吹走了我的路径的其余部分。这已经不是问题,到目前为止,但如果我是聪明与LISP我大概可以想办法的。不管怎么说,希望这有助于。

;;windows only stuff

(when (string-equal system-type "windows-nt")

(progn

(setq cygwin-bin "c:\\apps\\cygwin\\bin")

(setq gnu-bin "C:\\apps\\GnuWin32\\gnuwin32\\bin")

(setenv "PATH"

(concat cygwin-bin ";" gnu-bin ";"))

(setq exec-path

'(cygwin-bin gnu-bin)))) 

我要补充,我来到这个解决方案,因为把qnuwin32在Windows路径前面似乎是一个危险的命题,你运行你的机器上搞乱其他程序的风险。因此,这似乎是一个很好的妥协。

其他提示

Windows不拿出一个grep实用程序(事实上它确实有findstr,但它是不完全一样),所以你需要安装类似的 cygwin的 UNIX utils的窗户的。安装这些之后,你需要将它们添加到%PATH%,以便Windows将知道去哪里寻找他们。你可以做到这一点无论是在命令行中运行cmd.exe并发出命令set PATH=<your_path>;%PATH%或在一些设置寡妇你右击一个获得的我的电脑的图标(被称为类似的环境变量这里是它的一些图片)。

请注意,Windows有一个工具叫find,它也是在系统%PATH%,可以使某些命令(如M-x grep-find)无法正常工作,所以你把第一个UNIX的找到你%PATH%重要。

我认为EmacsW32用户首先需要通过菜单w32shell-shell,其被设置为无最初设置用户选项Options > Customize EmacsW32,并且用户应该将其设置为CMD或cygwin的。将其设置为CMD装置M-X的grep将使用内置的GnuWin32 grep的(和cmd.exe的作为壳),并且如果设置被正确保存,则dotemacs将包含行如下所示:

(custom-set-variables
 ...  
 '(w32shell-shell (quote cmd))
 ...)

在定制设定变量形式应放在尽可能靠近dotemacs尽可能的开始。

出于某种原因,在我的系统,这是不够的,M-X的grep会坚持使用的“grep -n”作为自己的模板,而不是“grep的-nH -e”,它总是附加“NUL”。在这种情况下,在dotemacs文件中添加下列行。

(grep-compute-defaults)

我用Cygwin(旧版本)。用Emacs我用图书馆 cygwin-山。el建立cygwin。el, ,载的顺序。工作只是罚款。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top