dired-compress-files-alist
的原始值为:
(("\.tar\.gz\'" . "tar -cf - %i | gzip -c9 > %o") ("\.tar\.bz2\'" . "tar -cf - %i | bzip2 -c9 > %o") ("\.tar\.xz\'" . "tar -cf - %i | xz -c9 > %o") ("\.tar\.zst\'" . "tar -cf - %i | zstd -19 -o %o") ("\.zip\'" . "zip %o -r --filesync %i"))
我想为.tgz
文件添加命令,所以我在.emacs
中添加一行:
(add-hook 'dired-mode
'(lambda ()
(setq dired-compress-files-alist
(cons '("\.tgz\'" . "tar -cf - %i | gzip -c9 > %o") dired-compress-files-alist))))
Emacs启动时,报告错误variable dired-compress-files-alist is not found
。我发现只有当我运行命令' dired-do-compress-to'时,这个变量才会出现。那么如何设置这个变量呢?
只需在初始化文件中要求标准库dired-aux
(至少在使用Dired之前)。这个库定义了变量dired-compress-files-alist
。
(require 'dired-aux)
(哦,不要引用lambdas:只用(lambda...)
,而不是'(lambda...)
)
(您也可以使用add-to-list
或push
代替setq
与cons
等,但这只是一个风格的问题。)