diredまたはdiredのようなバッファ内で解凍(または圧縮)したいと思います。このようなものはありますか? Nautilusのファイルマネージャと同様のもの、つまりファイルを選択してからキーストロークを押して、これらのファイルを新しいアーカイブファイルにしたいと思います。Emacs内で解凍/解凍するには
ありがとうございました
diredまたはdiredのようなバッファ内で解凍(または圧縮)したいと思います。このようなものはありますか? Nautilusのファイルマネージャと同様のもの、つまりファイルを選択してからキーストロークを押して、これらのファイルを新しいアーカイブファイルにしたいと思います。Emacs内で解凍/解凍するには
ありがとうございました
、あなただけの今、変数diredでZ
キーが.zipファイルを認識し、変数'dired-compress-file-suffixes
(eval-after-load "dired-aux"
'(add-to-list 'dired-compress-file-suffixes
'("\\.zip\\'" ".zip" "unzip")))
に追加する必要がありますzipアーカイブを解凍します。すでにサポートされているのはgunzip
,bunzip2
,uncompress
およびdictunzip
です。
あなたがファイルをマークし、あなたはz
がマークされたファイルのセットを圧縮するためにバインドするために、以下を使用することができます.zipアーカイブにそれらを追加したい場合は、次の
(eval-after-load "dired"
'(define-key dired-mode-map "z" 'dired-zip-files))
(defun dired-zip-files (zip-file)
"Create an archive containing the marked files."
(interactive "sEnter name of zip file: ")
;; create the zip file
(let ((zip-file (if (string-match ".zip$" zip-file) zip-file (concat zip-file ".zip"))))
(shell-command
(concat "zip "
zip-file
" "
(concat-string-list
(mapcar
'(lambda (filename)
(file-name-nondirectory filename))
(dired-get-marked-files))))))
(revert-buffer)
;; remove the mark on all the files "*" to " "
;; (dired-change-marks 42 ?\040)
;; mark zip file
;; (dired-mark-files-regexp (filename-to-regexp zip-file))
)
(defun concat-string-list (list)
"Return a string which is a concatenation of all elements of the list separated by spaces"
(mapconcat '(lambda (obj) (format "%s" obj)) list " "))
diredでディレクトリを開きます。あなたが縮めるファイルにm
とマークしてください。それからちょうどあなたがシェルと同じように、あなたはファイルをマークし、& unzip
を実行できるのdiredからアーカイブ全体を抽出するには
! zip foo.zip * <RET>
を入力します。
zip-archiveモードでは、zipファイルをdired風にブラウズできます。最近のバージョンのGNU emacsに付属していて、拡張子が.zipのファイルを訪問するときにデフォルトで使用されます。このモードでは、個々のファイルをバッファに抽出し、そこからC-x C-s
で保存することができます。あなたは.zipファイルを解凍するにはオプション...
を持って
は「Z」はそれを行いません。 - の - ボックス? (または 'm'でマークしてから 'Z'を押す)。私はしばらく前に私のために働いたことを思い出します。私はここでそれを見た: http://xahlee.org/emacs/file_management.html – hatmatrix
'Z'はファイルを圧縮し、それらはそれぞれ個別に圧縮されます。それらをアーカイブ/ジップに追加することはありません。 –
連結文字列リストが存在しないようです: 連結:シンボルの関数定義がvoid:連結列リスト –