Question

M-x grep, M-x lgrep, M-x rgrep ne fonctionnent pas EmacsW32 pour moi.

Je fais M-x lgrep et il dit grep n'est pas une commande:

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

Aussi ce qui est cette chose NUL? Page d'accueil EmacsW32 dit il est livré avec des utilitaires GnuWin32 mais il semble que le travail à la configuration d'utiliser réellement le grep GnuWin32 est laissé aux utilisateurs.

Comment puis-je configurer pour utiliser le grep GnuWin32 expédié ou Cygwin grep? Sont à la fois bien?

Était-ce utile?

La solution

Cet article a quelques conseils sur la façon d'obtenir ce travail.

Je suis arrivé ce travail l'autre jour, vous pouvez définir la variable d'environnement PATH dans emacs, et si vous avez Cygwin et / ou gnuw32 installé juste définir le chemin de ceux-ci. Ceci est un extrait de mon .emacs qui est applicable sur Windows. Je mets aux variables (Cygwin-bin, gnu-bin) au chemin où les programmes sont installés. Ensuite, construire le chemin de ceux-ci. Un inconvénient est que le vent souffle le reste de mon chemin. Ce qui n'a pas été un problème jusqu'à présent, mais si j'étais plus intelligent avec LISP je pourrais probablement comprendre quelque chose. Quoi qu'il en soit, espérons que cette aide.

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

Je dois ajouter, je suis arrivé à cette solution parce que mettre qnuwin32 en face du chemin dans les fenêtres semble être une proposition risquée, vous courez le risque de chambouler les autres programmes sur votre machine. Donc, cela semblait être un bon compromis.

Autres conseils

Windows ne vient pas avec un utilitaire grep (en fait, il ne findstr, mais ce n'est pas exactement la même chose), de sorte que vous devez installer quelque chose comme ou href="http://unxutils.sourceforge.net/" rel="noreferrer"> unix utils pour windows . Après avoir installé ceux-ci, vous devez les ajouter à %PATH%, de sorte que les fenêtres sachent où les chercher. Vous pouvez le faire soit en ligne de commande en exécutant cmd.exe et l'émission d'un set PATH=<your_path>;%PATH% de commande ou dans une veuve de paramètres que vous obtenez en un clic droit sur Poste de travail icône (appelé quelque chose comme variables d'environnement quelques photos de celui-ci).

Remarque, Windows a un utilitaire appelé find et il est également dans le système %PATH%, qui peut faire certaines commandes (comme M-x grep-find) fonctionnent pas correctement, il est donc important que vous mettez unix-trouver d'abord dans votre %PATH%.

Je pense que l'utilisateur EmacsW32 devez d'abord définir l'option utilisateur w32shell-shell via le menu Options > Customize EmacsW32, qui est fixé à aucun origine, et l'utilisateur doit le mettre soit cmd ou Cygwin. Réglage à des moyens cmd M-x grep utilisera les GnuWin32 intégré dans grep (et cmd.exe comme une coquille) et si le réglage est enregistré correctement, les dotemacs contiendront des lignes comme suit:

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

La variable set-formulaire personnalisé doit être placé au plus près du début des dotemacs que possible.

Pour une raison quelconque dans mon système, cela ne suffit pas, M-x grep insistera pour utiliser comme modèle « grep -n » plutôt que « grep -nH -e » et toujours ajoute « NUL ». Dans ce cas, ajoutez la ligne suivante dans le fichier dotemacs.

(grep-compute-defaults)

Voici une réponse qui fonctionne sans fioritures:

http://groups.google.com/ groupe / gnu.emacs.help / browse_thread / fil / 39cd9d63b07a9988 #

Amusez-vous!

J'utilise Cygwin (une ancienne version). Pour Emacs J'utilise les bibliothèques Cygwin-mount.el et setup-cygwin.el , chargé dans cet ordre. Fonctionne très bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top