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?
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.
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%
.
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:
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%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.