Pregunta

M-x grep, M-x lgrep, M-x rgrep no hacer el trabajo en EmacsW32 para mí.

hago M-x lgrep y dice que grep no es una orden:

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

También lo que es esa cosa NUL? página EmacsW32 dice que los buques con utilidades GnuWin32 pero parece que el trabajo para la configuración de utilizar realmente la GnuWin32 grep se deja a los usuarios.

¿Cómo puedo configurarlo para que use el enviado GnuWin32 grep grep o el cygwin? Son tanto bien?

¿Fue útil?

Solución

Este artículo tiene algunos consejos sobre cómo conseguir este trabajo.

Tengo este trabajo el otro día, se puede establecer la variable de entorno PATH dentro de Emacs, y si tienes cygwin y / o gnuw32 instalado acaba de establecer la ruta de acceso a ellos. Este es un fragmento de mis .emacs que es aplicable únicamente en las ventanas. Me puse a variables (cygwin-bin, gnu-bin) a la ruta donde están instalados los programas. Luego construir el camino a aquellos. Un inconveniente es que los golpes de distancia el resto de mi camino. Que no ha sido un problema hasta ahora, pero si yo era más inteligente con LISP probablemente podría encontrar algo mejor. De todos modos, espero que esta ayuda.

;;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)))) 

Debería añadir, llegué a esta solución porque poner qnuwin32 delante de la trayectoria de las ventanas parece ser una propuesta arriesgada, se corre el riesgo de echar a perder otros programas en su máquina. Así que esto parecía ser un buen compromiso.

Otros consejos

Windows no viene con una utilidad grep (de hecho, tiene findstr, pero no es exactamente lo mismo), por lo que necesita para instalar algo así como o href="http://unxutils.sourceforge.net/" rel="noreferrer"> utilidades UNIX para ventanas . Después de instalar los, es necesario añadirlos a %PATH%, de modo que las ventanas sabrían dónde buscar para ellos. Puede hacerlo ya sea en la línea de comandos ejecutando cmd.exe y la emisión de una set PATH=<your_path>;%PATH% de comandos o en algunos ajustes viuda se obtiene haciendo clic derecho en un Mi PC icono (llamado algo así como variables de entorno aquí son algunas fotos de ella).

Nota, Windows tiene una utilidad llamada find y es también en %PATH% sistema, que puede hacer que ciertos comandos (como M-x grep-find) no funciona correctamente, por lo que es importante poner Unix encontró por primera vez en su %PATH%.

Creo que el usuario primero tiene EmacsW32 para establecer la opción de usuario a través de la w32shell-shell Options > Customize EmacsW32 menú, que se establece en ninguno originalmente, y el usuario debe configurarlo para que sea cmd o cygwin. Si se establece en medios cmd M-x grep utilizará las líneas incorporado GnuWin32 grep (y cmd.exe como un shell) y si la configuración se guarda correctamente, los dotemacs contendrán como el siguiente:

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

El formulario personalizado-set-variable debe ser colocado lo más cerca del comienzo de los dotemacs como sea posible.

Por alguna razón en mi sistema, esto no es suficiente, M-x grep insistirá utilizar "grep -n" como su plantilla en lugar de "grep -nH -e" y siempre anexa "NUL". En ese caso, añada la siguiente línea en el archivo dotemacs.

(grep-compute-defaults)

Yo uso Cygwin (una versión antigua). Para uso Emacs I bibliotecas cygwin-mount.el y configuración-cygwin.el , cargado en ese orden. Funciona muy bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top