这都2018年了,什么时候能把这个问题给解决了?
orgmode 有行内图片时滚动的时候真是一塌糊涂啊,图片一下消失,一下蹦出来,完全违反直觉啊。 用 mac port 的朋友说说你们是不是没有这个问题?
这个可以说是目前我使用 orgmode 时候最痛苦的一点了,其它的痛点都或多或少的解决了。唯独这个,不知道有生之年能不能解决了。
据说 ein 的行内图片使用 slice-image 把这个问题解决了,orgmode 中要是能解决就好了。
这都2018年了,什么时候能把这个问题给解决了?
orgmode 有行内图片时滚动的时候真是一塌糊涂啊,图片一下消失,一下蹦出来,完全违反直觉啊。 用 mac port 的朋友说说你们是不是没有这个问题?
这个可以说是目前我使用 orgmode 时候最痛苦的一点了,其它的痛点都或多或少的解决了。唯独这个,不知道有生之年能不能解决了。
据说 ein 的行内图片使用 slice-image 把这个问题解决了,orgmode 中要是能解决就好了。
这样只能算是 workaround 吧,不过这样对 orgmode 的改动不大,导出什么的都不受影响。感觉 slice-image 可能会对导出产生影响。
最理想的情况应该是 Orgmode 的开发者或者 emacs 的开发者给出一个原生的解决方案。这个问题不解决 emacs 怎么可能成为理想的富文本编辑器?
是指图片超过 window 高度的时候(光标在图片上),还是图片是小半张 window 高度,然后图片突然出现(这时光标不在图片上)?
感觉这个应该和 Org-mode 无关吧。
还有我想问一下行内图片是和同一行的文字都是居中对齐么,图片高度很大时会不会很丑?还是说一般行内大图片是独立成行的?
image-mode
有 image-next-line
这样的命令,或许可以参考一下,原理是 set-window-vscroll
。
如光标在图片上时,向下滚动 n
行(应该先用 (/ (line-pixel-height) (default-line-height))
做判断):
(set-window-vscroll nil (max 0 (+ (window-vscroll) n)))
感觉 next-line
涉及到的参数略多,不太容易改。
我用的 spacemacs,在 next-line 上再加上 org,evil 两层,感觉不太好办
这个思路确实不错,pdf-tools 里也确实能够滚动图片,但是放到 org 里实现起来可能不太容易。
应该是 emacs 的问题,但是 Eli 认为图片滚动没有问题,这我就不能理解了。也许他指的是 image-mode 的滚动?图文混排这种滚动还没有人提起过?
https://lists.gnu.org/archive/html/help-gnu-emacs/2014-02/msg00270.html
next-line
会调用函数 line-move
,这个函数会强制 set-window-vscroll
设为 0,相当于白改了。而且最后一段也用到了 set-window-vscroll
,用于 previous-line
时显示图片的尾部一行,但是条件有点苛刻。这些都要魔改掉,感觉不太清真,而且这函数里面的变量有点杂
你发的这篇我再仔细研究一下
可能是指超高图片的滚动,auto-window-vscroll
为默认值时比较平滑?重现的步骤:
runemacs -Q
并处理好 Org-mode 的加载toggle-truncate-lines
RET,貌似 visual-line-mode
表现更好org-display-inline-images
RET
next-line
遇到超高图片时,会进入图片,并设置为半屏,可以慢慢向上滚动。要等图片尾部到半屏时,才能跳出。但碰到中等图片(略小于 window 高度)还是会乱跳,大部分时候会跳到第一行,有时候跳到中间。
半屏的原因是 scroll-up-aggressively
值为 nil,0.5 屏,可以设置为 0.0。但是这么设置之后无法退出超高图片,我这里需要按住C-n不放,一段时间后才能让光标退出来,玄学特性?
(setq-default scroll-down-aggressively 0.0
scroll-up-aggressively 0.0)
imagemagick
能不能解决中等图片乱跳的问题?你在 Linux 下用过么?效果是啥样的?
还有想问一下这几个变量的值你是怎么设置的(不同搭配好像有截然不同的效果):
scroll-margin
默认为 0scroll-conservatively
默认为 0,这个感觉影响最大,文档也没怎么看懂scroll-down-aggressively
和 scroll-up-aggressively
默认都为 nilscroll-step
默认为 0,好像没什么作用?auto-window-vscroll
默认为 t,这个应该不会改吧新发现: global-disable-point-adjustment
,disable-point-adjustment
,但感觉没什么作用。
另外问一下你开 visual-line-mode
么?之前都用 toggle-truncate-lines
。