wie grep in Emacs unter Windows funktioniert (EmacsW32)

8

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

Ich mache M-x lgrep und sagt, dass grep kein Befehl ist:

%Vor%

Was ist das NUL Ding? Die EmacsW32-Homepage sagt, dass sie mit Gnuwin32-Dienstprogrammen geliefert wird, aber es scheint, dass die Arbeit an der Konfiguration, Gnuwin32 grep zu verwenden, den Benutzern überlassen wird.

Wie kann ich es konfigurieren, um entweder das mitgelieferte Gnuwin32 grep oder das Cygwin grep zu verwenden? Sind beide in Ordnung?

    
Yoo 30.01.2010, 21:29
quelle

5 Antworten

3

In diesem Artikel finden Sie einige Tipps, wie Sie diese Funktion nutzen können.

Ich habe das neulich funktioniert, Sie können die Umgebungsvariable PATH innerhalb von emacs setzen, und wenn Sie cygwin und / oder gnuw32 installiert haben, legen Sie einfach den Pfad zu diesen fest. Dies ist ein Ausschnitt aus meinen .emacs, der nur für Windows gilt. Ich setze Variablen (cygwin-bin, gnu-bin) auf den Pfad, in dem die Programme installiert sind. Dann baue den Weg dorthin. Ein Nachteil ist, dass es den Rest meines Weges wegbläst. Was bisher kein Problem war, aber wenn ich mit LISP schlauer wäre, könnte ich wahrscheinlich etwas herausfinden. Hoffentlich hilft das.

%Vor%

Ich sollte hinzufügen, dass ich zu dieser Lösung gekommen bin, weil es eine riskante Angelegenheit ist, qnuwin32 vor den Pfad in Windows zu stellen. Sie laufen Gefahr, andere Programme auf Ihrem Rechner zu verpfuschen. Das schien also ein guter Kompromiss zu sein.

    
Tom Willis 31.01.2010, 16:32
quelle
5

Windows kommt nicht mit einem grep Dienstprogramm (tatsächlich hat es findstr , aber es ist nicht genau dasselbe), also müssen Sie etwas wie cygwin oder unix utils für Windows . Nachdem Sie diese installiert haben, müssen Sie sie zu %PATH% hinzufügen, damit die Fenster wissen, wo sie suchen müssen. Sie können dies entweder in der Befehlszeile tun, indem Sie cmd.exe ausführen und einen Befehl set PATH=<your_path>;%PATH% ausgeben oder in einigen Einstellungen durch Klicken mit der rechten Maustaste auf ein Arbeitsplatz Symbol (etwa Umgebungsvariablen) hier sind ein paar Bilder davon).

Beachten Sie, Windows hat ein Dienstprogramm namens find und es ist auch im System %PATH% , das bestimmte Befehle (wie M-x grep-find ) nicht korrekt funktionieren lässt. Daher ist es wichtig, dass Sie unix-find zuerst in Ihrem setzen %PATH% .

    
Dmitry 31.01.2010 13:29
quelle
1

Ich denke, der EmacsW32-Benutzer muss zuerst die Benutzeroption w32shell-shell über das Menü Options > Customize EmacsW32 setzen, das ursprünglich auf none gesetzt wurde, und der Benutzer sollte es entweder auf cmd oder cygwin setzen. Wenn Sie es auf cmd setzen, bedeutet das, dass M-x grep den eingebauten Gnuwin32 grep (und cmd.exe als Shell) verwendet. Wenn die Einstellung korrekt gespeichert wird, enthält dotemacs folgende Zeilen:

%Vor%

Das Format der benutzerdefinierten Variablen sollte so nah wie möglich am Anfang der Dotemacs platziert werden.

Aus irgendeinem Grund in meinem System ist dies nicht genug, M-x grep wird darauf bestehen, "grep -n" als Vorlage zu verwenden, anstatt "grep -nH -e" und es fügt immer "NUL" an. Fügen Sie in diesem Fall die folgende Zeile in die dotemacs-Datei ein.

%Vor%     
Yoo 07.02.2010 18:52
quelle
0

Hier ist eine no-nonsense Antwort, die funktioniert:

Ссылка

Viel Spaß!

    
Terrence Brannon 27.02.2010 10:14
quelle
0

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

    
Drew 21.08.2011 22:38
quelle

Tags und Links