emacs 如何从 dired 预览像 jar 文件一样的 java jmod 文件?

问题描述 投票:0回答:1

它们实际上都是zip文件。我可以直接从 dired 预览 jar 文件,但不能预览 jmod 文件。

从 dired 打开 jar 文件后,我可以像这样查看 jar 文件。

我尝试将

jmod
添加到
dired-compress-file-suffixes
,但不起作用。

(add-to-list 'dired-compress-file-suffixes '("\\.jmod\\'" "" "unzip -o -d %o %i"))

顺便说一句,

jar
也不在
dired-compress-file-suffixes
中。

emacs
1个回答
0
投票

编辑:经过更多讨论(参见评论),我们确定:

  • *.jmod
    文件是与
    *.jar
    文件(略有)不同的文件格式,因为开头的魔术字符是
    JM
    与 jar 文件(以及更常见的 zip 文件)中使用的
    PK

  • 如果不是这样,下面建议的配置更改实际上是不必要的,因为

    magic-fallback-mode-alist
    中的 zip 文件检测会处理它们。

  • 事实上,不仅需要告诉 Emacs 这些是存档,还需要修改

    archive-find-type
    函数来识别它们是什么 kind 的存档,因为该函数目前仅识别基于
    PK
    的存档zip 文件格式。

原答案如下...


默认的

auto-mode-alist
包含以下
archive-mode
条目,以及与
.jar
文件匹配的正则表达式:

("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|cbr\\|7z\\|squashfs\\|ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|CBR\\|7Z\\|SQUASHFS\\)\\'" . archive-mode)

该默认值的代码注释还说:

;; The list of archive file extensions should be in sync with
;; `auto-coding-alist' with `no-conversion' coding system.

因此这应该可以解决问题:

(add-to-list 'auto-mode-alist '("\\.jmod\\'" . archive-mode))
(add-to-list 'auto-coding-alist '("\\.jmod\\'" . no-conversion))
© www.soinside.com 2019 - 2024. All rights reserved.