7 Stimmen

Wie man den Emacs Zip-Archiv-Modus unter Windows zum Laufen bekommt

Der Zip-Archiv-Modus funktioniert auf Systemen mit zip/unzip. Wie bringt man es zum Laufen auf Windows?

7voto

Charlie Martin Punkte 106684

EMACS verwendet ein externes Programm, um die Komprimierung/Entkomprimierung durchzuführen. Alles, was es benötigt, ist zu wissen, welches richtige Programm verwendet werden soll.


Einige ausführliche Diskussionen:

Wie gesagt, ich habe keine Windows-Box, aber der LISP-Code befindet sich in arc-mode.el ungefähr in Zeile 230:

(defcustom archive-zip-extract
  (if (and (not (executable-find "unzip"))
           (executable-find "pkunzip"))
      '("pkunzip" "-e" "-o-")
    '("unzip" "-qq" "-c"))
  "*Programm und seine Optionen, um ein Zip-Datei-Mitglied zu extrahieren.
Extraktion sollte auf die Standardausgabe erfolgen. Archiv- und Dateiname werden hinzugefügt."
  :type '(list (string :tag "Programm")
        (repeat :tag "Optionen"
            :inline t
            (string :format "%v")))
  :group 'archive-zip)

Beachten Sie die Funktion executable-find. Sie sucht in Ihrem EMACS exec-path, das einige EMACS-Ausführungsverzeichnisse enthält, die nicht in Ihrer normalen PATH-Variablen enthalten sind. In meinem Fall ist es:

("/usr/bin" 
 "/bin" 
 "/usr/sbin" 
 "/sbin" 
 "/Applications/Emacs.app/Contents/MacOS/libexec" 
 "/Applications/Emacs.app/Contents/MacOS/bin" 
 "~/bin" 
 "/usr/local/bin" 
 "/usr/X11R6/bin")

was die beiden Verzeichnisse innerhalb des EMACS-Pakets enthält. Ihre Windows-Installation wird entsprechende Verzeichnisse irgendwo in den Tiefen des EMACS-Setups enthalten. Dort sollten Sie nach den ausführbaren Dateien suchen, wenn sie nicht in Ihrem regulären Pfad sind.

Sie können pkunzip von dieser Seite herunterladen, installieren und den Pfad zur Installation mit (add-to-list 'exec-path "c:/path/to/pkunzip") hinzufügen.

0 Stimmen

Hmm gute Beobachtung, aber nicht wahr. Auf meinem Emacs 22 unter Windows XP funktioniert das Zip-Browsen auch nachdem ich die Zeilen auskommentiert habe, die meinen Cygwin-Binpfad zu PATH hinzugefügt haben. Ein schneller Check mit der Befehlszeile zeigt auch keine zip/unzip-Executable, die irgendwo in meinem PATH liegen.

0 Stimmen

Ich habe meinen exec-Pfad überprüft, und darin ist kein unzip (obwohl archive-zip-extract auf unzip gesetzt ist). Ich bin mir unsicher, wie es funktioniert...

0 Stimmen

Versuchen Sie, eine Strg-H V Archiv-Zip-Extraktion durchzuführen und sehen Sie, was das Ergebnis ist.

3voto

dingyi342 Punkte 91

Sie können [Chocolatey]: https://chocolatey.org/ verwenden, das Paketverwaltungstool für Windows, um Unzip zu installieren.

choco install unzip

2voto

luapyad Punkte 3819

Wie Emacs mit komprimierten Dateien umgeht, kann ein wenig verwirrend sein, aber hier ist ein Versuch, die Situation zusammenzufassen. Es gibt zwei Hauptkomprimierungspakete: arc-mode (z. B. zip-archive Modus) und jka-compr Modus (auto-compression-mode).

  1. arc-mode: wird das Inhaltsverzeichnis (d. h. eine einfache Liste der Dateinamen, die im Archiv enthalten sind) von Multi-Datei-Archiven (arc, lzh, zip, zoo) ohne die Notwendigkeit des entsprechenden Tools von Drittanbietern auf Ihrem System anzeigen. Wenn Sie tatsächlich irgendeine Anzeige/Bearbeitung der tatsächlichen Dateien im Archiv mit arc-mode vornehmen möchten, müssen Sie definitiv sicherstellen, dass das Tool von Drittanbietern auf Ihrem System installiert ist und sich an der entsprechenden Stelle befindet. z.B. für Zip-Dateien wird standardmäßig auf zip/unzip im exec-path (was die Betriebssystem-PATH-Umgebung ist) zugegriffen. Dies kann mit archive-zip-extract und archive-zip-expunge angepasst werden.
  2. jka-compr (auto-compression-mode): komprimiert/entkomprimiert automatisch einzelne Dateiarchive (gz, Z, bz2, tbz, usw.) und erfordert, dass das entsprechende Tool von Drittanbietern auf Ihrem System vorhanden ist.

Um den zip-archive Modus auf Windows vollständig zum Laufen zu bringen, müssen Sie einfach eine Windows-Version von command-line zip/unzip finden und sie in ein Verzeichnis setzen, das in Ihrem PATH liegt (z. B. siehe unzip-Paket unter http://gnuwin32.sourceforge.net/).

0 Stimmen

Warten Sie, sagen Sie, dass arc-mode die Drittanbieter-Tools benötigt oder nicht? Ich bin mir nicht sicher? Mein gewünschtes Verwendungsmuster ist ein Dired, dann und Taste (f) auf einer Zip-Datei, um sie zu öffnen.

0 Stimmen

Arc-mode benötigt die Tools von Drittanbietern, um etwas Nützliches zu tun (außer dass es die Dateinamen in einem Zip-Archiv ohne sie anzeigen kann). Sie müssen also nur einen Drittanbieter-Zip/Unzip in Ihrem Pfad platzieren, um Ihr Nutzungsverhalten zu erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X