5

eog当我按下vdired 缓冲区中的图像时,我想要- 样式的导航。我在网上搜索了一下,但没有找到任何简单的东西。有image-dired,但缩略图不是我想要的。

我想要大多数文件类型已经存在的那种行为: v在 dired 中显示文件 in view-mode, where np,并q做显而易见的事情。

我已经破解了一些东西dired-view-next,但我想知道是否已经有一个做得很好的包?

4

3 回答 3

5

这已在 Emacs 24.4 中得到修复。IOW,它适用于 Emacs 24 的最新开发快照。

v在 Dired 中按您的要求工作:它显示图像。然后n, p, 并q做你所期望的:分别显示下一个或上一个文件(图像),然后退出。每个图像都显示在 中image-mode,它将等绑定n到 DTRT。

考虑只从开发快照中获取image-mode.el代码并将其添加到您的 init 文件中。不知道您是否可能需要修改其中的一些代码,以便它可以很好地与 Emacs 24.3(或您使用的任何 Emacs 版本)配合使用。

于 2013-11-08T17:16:50.927 回答
1

Image Dired中,您可以运行image-dired-display-thumbnail-original-image。如果您修改键盘映射以便v运行image-dired-display-thumbnail-original-image,但这只会在另一个缓冲区中显示图像。

您也许可以编写自定义次要模式,以便在打开图像时修改当前的 dired 模式。这种新模式将使图像在另一个缓冲区中打开,同时将光标保持在当前缓冲区中,并将n光标p和显示的图像分别移动到下一个/上一个图像。q会把你送回去。但是,我不知道该怎么做。

于 2013-11-08T14:43:56.703 回答
0

我把我的代码放在这里以防万一没有更好的等价物。它可以按我的意愿工作,但是实现有点傻:

(defmacro image-view (direction)
  `(lambda ()
     (interactive)
     (quit-window)
     (let ((pt (point))
           filename)
       (or (ignore-errors
             (catch 'filename
               (while (dired-next-line ,direction)
                 (when (image-type-from-file-name
                        (setq filename (dired-get-filename)))
                   (throw 'filename filename)))))
           (goto-char pt))
       (dired-view-file))))

(eval-after-load "image-mode"
  '(progn
    (define-key image-mode-map "n" (image-view 1))
    (define-key image-mode-map "h" (image-view -1))))
于 2013-11-08T16:28:27.853 回答