gpt4 book ai didi

emacs - 如何在 Emacs 中解压/解压

转载 作者:行者123 更新时间:2023-12-02 01:40:40 27 4
gpt4 key购买 nike

我想在 dired 或类似 dired 的缓冲区中运行 unzip(甚至 zip)。有这样的事吗?我想要类似于 Nautilus 文件管理器的功能:即选择文件,然后按击键将这些文件放入新的存档文件中。

谢谢

最佳答案

你有选择...

要解压缩 .zip 文件,您只需添加变量 'dired-compress-file-suffixes

(eval-after-load "dired-aux"
'(add-to-list 'dired-compress-file-suffixes
'("\\.zip\\'" ".zip" "unzip")))

现在 dired 中的 Z 键将识别 .zip 扩展名并解压缩 .zip 存档。已支持的有 gunzipbunzip2uncompressdictunzip

如果您想标记文件并将其添加到 .zip 存档中,您可以使用以下命令将 z 绑定(bind)为压缩标记文件集:

(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 " "))

关于emacs - 如何在 Emacs 中解压/解压,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1431351/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com