2009-05-16 5 views

Antwort

7

EMACS verwendet ein externes Programm für die Komprimierung/Dekomprimierung. Alles was es braucht, ist das richtige Programm zu kennen.


Einige erweiterte Diskussion:

Wie gesagt, habe ich keine Windows-Box bekam, aber der LISP-Code ist in bogen mode.el bei etwa Zeile 230:

(defcustom archive-zip-extract 
    (if (and (not (executable-find "unzip")) 
      (executable-find "pkunzip")) 
     '("pkunzip" "-e" "-o-") 
    '("unzip" "-qq" "-c")) 
    "*Program and its options to run in order to extract a zip file member. 
Extraction should happen to standard output. Archive and member name will 
be added." 
    :type '(list (string :tag "Program") 
     (repeat :tag "Options" 
      :inline t 
      (string :format "%v"))) 
    :group 'archive-zip) 

Beachten Sie die Funktion executable-find. Es sucht in Ihrem EMACS exec-path, die einige ausführbare EMACS-Verzeichnisse enthält, die sich nicht in Ihrer normalen PATH-Variable befinden. 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") 

, die die zwei Verzeichnisse innerhalb des EMACS-Pakets enthält. Ihre Windows-Installation enthält äquivalente Verzeichnisse irgendwo im Inneren des EMACS-Setups. Dort suchen Sie nach den ausführbaren Dateien, wenn sie nicht in Ihrem normalen Pfad liegen.

Sie können es herunterladen pkunzip von this site, installieren und den Pfad zur Installation mit (add-to-list 'exec-path "c:/path/to/pkunzip")

+0

Hmm gute Beobachtung, aber nicht wahr. Auf meinem Emacs 22 unter Windows XP funktioniert das Zip-Browsing nativ, auch nachdem ich die Zeilen auskommentiert habe, die meinen CYGWIN-BIN zu PATH hinzugefügt haben. Eine schnelle Überprüfung mit der Befehls-Shell zeigt auch keine zip/unzip-ausführbare Datei irgendwo in meinem PATH. – polyglot

+0

Ich habe meinen exec-Pfad überprüft, und es gibt kein entzip (obwohl archive-zip-extract auf entpacken eingestellt ist). Ich bin nicht klar, wie es funktioniert ... –

+0

Versuchen Sie eine Ctrl-H V-Archiv-Zip-Extrakt und sehen Sie, was das Ergebnis ist. –

2

hinzufügen Wie Emacs komprimierte Dateien behandelt ein wenig verwirrend sein kann, aber hier ist ein Versuch, die Situation zusammenzufassen. Es gibt zwei Hauptkompressionspakete: arc-mode (z. B. zip-archive Modus) und jka-compr Modus (auto-compression-mode).

  1. arc-mode: zeigt das table-of-contents (dh einfache Liste von Dateinamen im Archiv enthalten) von Multi-Datei-Archive (arc, lzh, zip, Zoo), ohne dass die betreffenden Dritt Werkzeug, um auf Ihrem System zu existieren. Wenn Sie tatsächlich der tatsächlichen Dateien innerhalb des Archivs mit Arc-Modus anzeigen/bearbeiten möchten, benötigen Sie das Drittanbieter-Tool auf Ihrem System und an der entsprechenden Stelle. Z.B. Bei ZIP-Dateien wird standardmäßig die URL exec-path (die PATH-Umgebung des Betriebssystems) gezippt/entpackt. Dies kann unter Verwendung von und archive-zip-expunge angepasst werden.
  2. jka-compr (auto-compression-mode): Komprimiert/dekomprimiert automatisch einzelne Dateiarchive (gz, Z, bz2, tbz usw.) und setzt voraus, dass das entsprechende Tool von Drittanbietern auf Ihrem System vorhanden ist.

So zip-archive Modus voll funktionsfähig unter Windows bekommen Sie nur eine Windows-Version von Befehlszeilen zip finden müssen/dekomprimieren und sie in ein Verzeichnis kopieren, die in Ihrer PATH ist (siehe zB unzip-Paket bei http://gnuwin32.sourceforge.net/) .

+0

Warten Sie, sagen Sie, dass der Arc-Modus die Tools von Drittanbietern benötigt oder nicht? Ich bin nicht klar? Mein gewünschtes Verwendungsmuster ist dired, then und key (f) auf einer Zip-Datei, um es zu öffnen. – Cheeso

+0

arc-mode benötigt die Tools von Drittanbietern, um etwas Nützliches zu tun (außer dass es die Dateinamen anzeigen kann, die in einer Zip-Datei ohne sie enthalten sind). Sie müssen also nur einen Drittanbieter-Zip/Unzip in Ihren Pfad einfügen, um Ihr Nutzungsmuster zu erhalten. – luapyad

Verwandte Themen