当我在直接缓冲区中的图像上按 v 时,我想要eog
- 样式导航。
我在网上搜索了一下,但没有找到任何直截了当的东西。
有image-dired
,但缩略图不是我想要的。
我想要大多数文件类型已经存在的行为:
dired中的 v 显示view-mode
中的文件,
其中 n , p 和 q 做了显而易见的事。
我在dired-view-next
附近攻击了一些东西,但我不知道是否
已经有一个好的工作包吗?
答案 0 :(得分:5)
这已经在Emacs 24.4中得到修复。 IOW,它适用于Emacs 24的最新开发快照。
Dired中的 v
正如您所要求的那样:它显示图像。然后n
,p
和q
执行您期望的操作:分别显示下一个或上一个文件(图像),然后退出。每个图像都显示在image-mode
中,它将n
等绑定到DTRT。
考虑从开发快照中获取image-mode.el
code并将其添加到init文件中。不知道你是否需要摆弄一些代码,以便与Emacs 24.3(或者你正在使用的任何Emacs版本)配合使用。
答案 1 :(得分:1)
从Image Dired,您可以运行image-dired-display-thumbnail-original-image
。如果您修改了键映射,以便v
运行image-dired-display-thumbnail-original-image
,但这只会在另一个缓冲区中显示该图像。
您可以编写自定义次要模式,以便在打开图像时修改当前的dired模式。这种新模式将使图像在另一个缓冲区中打开,同时将光标保持在当前缓冲区中,并使n
和p
分别将光标和显示的图像移动到下一个/上一个图像。 q
会让你退缩。但是,我不知道该怎么做。
答案 2 :(得分: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))))