Next Previous Contents

6. 使用 bzip2 來結合 emacs

6.1 為每個人改變 emacs:

我寫了下面的給 jka-compr.el 用的修補,它會加入 bzip2 成為自動壓縮模式。

除外條款: 我只在 emacs-20.2上試過這個,但是我也找不到有 啥麼理由來相信同樣的方法卻不能在其他版本上使用的。

使用它,

  1. 到 emacs-20.2/lisp 原始程式碼目錄�� (看你在哪兒 untarred 它的)
  2. 把下面的修補做成叫 jka-compr.el.diff 的檔案(全放在這檔案�� )。
  3. 然後執行
     patch < jka-compr.el.diff
    
  4. 啟動 emacs,再執行
     M-x byte-compile-file jka-compr.el
    
  5. 離開 emacs。
  6. 把它原來的 jka-compr.elc 放到安全的地方以防有臭虫時備用。
  7. 用新的 jka-compr.elc來代替它。
  8. 好好玩吧!
--- jka-compr.el        Sat Jul 26 17:02:39 1997
+++ jka-compr.el.new    Thu Feb  5 17:44:35 1998
@@ -44,7 +44,7 @@
 ;; The variable, jka-compr-compression-info-list can be used to
 ;; customize jka-compr to work with other compression programs.
 ;; The default value of this variable allows jka-compr to work with
-;; Unix compress and gzip.
+;; Unix compress and gzip.  David Fetter added bzip2 support :)
 ;;
 ;; If you are concerned about the stderr output of gzip and other
 ;; compression/decompression programs showing up in your buffers, you
@@ -121,7 +121,9 @@


 ;;; I have this defined so that .Z files are assumed to be in unix
-;;; compress format; and .gz files, in gzip format.
+;;; compress format; and .gz files, in gzip format, and .bz2 files,
+;;; in the snappy new bzip2 format from http://www.muraroa.demon.co.uk.
+;;; Keep up the good work, people!
 (defcustom jka-compr-compression-info-list
   ;;[regexp
   ;; compr-message  compr-prog  compr-args
@@ -131,6 +133,10 @@
      "compressing"    "compress"     ("-c")
      "uncompressing"  "uncompress"   ("-c")
      nil t]
+    ["\\.bz2\\'"
+     "bzip2ing"        "bzip2"         ("")
+     "bunzip2ing"      "bzip2"         ("-d")
+     nil t]
     ["\\.tgz\\'"
      "zipping"        "gzip"         ("-c" "-q")
      "unzipping"      "gzip"         ("-c" "-q" "-d")

6.2 為某人改變 emacs:

這次要謝謝 Ulrik Dickow, ukd@kampsax.dk,他是Kampsax Technology的系統程式設計師 :

為了讓非 sysadmin 的朋友可以自動地使用 bzip2,只需在你的 .emacs 檔案�堨[上下列東東。

;; Automatic (un)compression on loading/saving files (gzip(1) and similar)
;; We start it in the off state, so that bzip2(1) support can be added.
;; Code thrown together by Ulrik Dickow for ~/.emacs with Emacs 19.34.
;; Should work with many older and newer Emacsen too.  No warranty though.
;;
(if (fboundp 'auto-compression-mode) ; Emacs 19.30+
    (auto-compression-mode 0)
  (require 'jka-compr)
  (toggle-auto-compression 0))
;; Now add bzip2 support and turn auto compression back on.
(add-to-list 'jka-compr-compression-info-list
             ["\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'"
              "zipping"        "bzip2"         ()
              "unzipping"      "bzip2"         ("-d")
              nil t])
(toggle-auto-compression 1 t)


Next Previous Contents