Frage

M-x grep, M-x lgrep, M-x rgrep nicht Arbeit in EmacsW32 für mich.

ich M-x lgrep und es sagt, grep keinen Befehl lautet:

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

Auch was ist das NUL Ding? EmacsW32 Homepage heißt es Schiffe mit GnuWin32 Dienstprogramme, aber es scheint, die Arbeit der Konfiguration tatsächlich zu verwenden, die GnuWin32 grep Benutzer überlassen wird.

Wie kann ich es so konfigurieren, entweder die mitgelieferte GnuWin32 grep oder cygwin grep zu benutzen? Sind beide gut?

War es hilfreich?

Lösung

dieser Artikel einige Tipps darauf hat, wie diese Funktion zu erhalten.

Ich habe dies den anderen Tag arbeiten, können Sie die Umgebungsvariable PATH innerhalb von Emacs setzen können, und wenn Sie Cygwin und / oder gnuw32 installiert nur den Pfad zu denen gesetzt. Dies ist ein Ausschnitt aus meinen .emacs, die nur auf Windows anwendbar ist. Ich setze auf Variablen (Cygwin-ist, Gnu-ist) auf den Pfad, in dem die Programme installiert sind. Dann bauen Sie den Pfad zu denen. Ein Nachteil ist, es bläst den Rest meines Weges entfernt. Welches Problem ist bisher nicht, aber wenn ich war schlauer mit LISP ich könnte wahrscheinlich Figur etwas aus. Wie auch immer, hofft, das hilft.

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

soll ich hinzufügen, dass ich in dieser Lösung kam qnuwin32 vor dem Weg in den Fenstern, weil Putting scheint eine riskante Angelegenheit zu sein, Sie laufen Gefahr, in Unordnung zu anderen Programmen auf Ihrem Rechner. So schien ein guter Kompromiss zu sein.

Andere Tipps

Fenster kommen nicht mit einem grep-Dienstprogramm (in der Tat ist es findstr hat, aber es ist nicht genau das gleiche), so dass Sie so etwas wie installieren cygwin oder Unix-utils für Fenster . Nach diesen installieren, müssen Sie sie %PATH% hinzufügen, damit Windows wissen würde, wo sie suchen. Sie können, indem Sie cmd.exe, dass entweder in der Befehlszeile tun und einen Befehl set PATH=<your_path>;%PATH% oder in einigen Einstellungen Witwe Ausgabe erhalten Sie durch einen Rechtsklick ein Arbeitsplatz Symbol (genannt etwas wie Umgebungsvariablen hier sind einige Bilder davon).

Hinweis, Fenster hat ein Programm namens find und es ist auch in System %PATH%, dass bestimmte Befehle (wie M-x grep-find) machen kann nicht richtig funktionieren, so dass es wichtig ist, setzen Sie Unix-finden zunächst in dem %PATH%.

Ich denke, die EmacsW32 Benutzer müssen zuerst die Benutzeroption w32shell-shell über das Menü Options > Customize EmacsW32 setzen, die ursprünglich auf none gesetzt ist, und der Benutzer es auf beiden cmd oder Cygwin setzen soll. Setzen auf cmd mittels M-x grep wird die eingebaute in GnuWin32 grep verwenden (und cmd.exe als Shell), und wenn die Einstellung korrekt gespeichert wird, werden die dotemacs enthalten Zeilen wie folgt aus:

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

Die custom-set-variable Form sollte so nah an den Anfang der dotemacs wie möglich platziert werden.

Aus irgendeinem Grunde in meinem System, ist dies nicht genug, M-x grep wird darauf bestehen, „grep -n“ als Vorlage zu verwenden, anstatt „grep -nH -en“ und es hängt immer „NUL“. In diesem Fall fügen Sie die folgende Zeile in der dotemacs Datei.

(grep-compute-defaults)

Ich benutze Cygwin (alte Version). Für Emacs I Verwendung Bibliotheken Cygwin-mount.el und setup-cygwin.el , in dieser Reihenfolge geladen. Funktioniert gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top