eog
当我按下vdired 缓冲区中的图像时,我想要- 样式的导航。我在网上搜索了一下,但没有找到任何简单的东西。有image-dired
,但缩略图不是我想要的。
我想要大多数文件类型已经存在的那种行为:
v在 dired 中显示文件 in view-mode
, where n,p,并q做显而易见的事情。
我已经破解了一些东西dired-view-next
,但我想知道是否已经有一个做得很好的包?
这已在 Emacs 24.4 中得到修复。IOW,它适用于 Emacs 24 的最新开发快照。
v
在 Dired 中按您的要求工作:它显示图像。然后n
, p
, 并q
做你所期望的:分别显示下一个或上一个文件(图像),然后退出。每个图像都显示在 中image-mode
,它将等绑定n
到 DTRT。
考虑只从开发快照中获取image-mode.el
代码并将其添加到您的 init 文件中。不知道您是否可能需要修改其中的一些代码,以便它可以很好地与 Emacs 24.3(或您使用的任何 Emacs 版本)配合使用。
从Image Dired中,您可以运行image-dired-display-thumbnail-original-image
。如果您修改键盘映射以便v
运行image-dired-display-thumbnail-original-image
,但这只会在另一个缓冲区中显示图像。
您也许可以编写自定义次要模式,以便在打开图像时修改当前的 dired 模式。这种新模式将使图像在另一个缓冲区中打开,同时将光标保持在当前缓冲区中,并将n
光标p
和显示的图像分别移动到下一个/上一个图像。q
会把你送回去。但是,我不知道该怎么做。
我把我的代码放在这里以防万一没有更好的等价物。它可以按我的意愿工作,但是实现有点傻:
(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))))