gpt4 book ai didi

OS X 上的 Emacs 滚动错误

转载 作者:行者123 更新时间:2023-12-01 05:21:21 25 4
gpt4 key购买 nike

更新

从 Mountain Lion 升级到 Mavericks 后,这个问题就消失了,同时也将 Emacs 从 23.4 升级到 24.3。

结束更新

使用 .emacs 文件包含

(set-foreground-color "white")
(set-background-color "black")

(setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil)))
(setq mouse-wheel-progressive-speed nil)

当我用减少的步骤向上或向下滚动时,我看到了奇怪的图案

vertical lines

放大其中一种图案会发现

magnified one vertical line

此问题已存在于 Emacs 22、23 和现在的 24,适用于多个版本的 OSX——包括 Mountain Lion。这是一个已知的渲染错误吗?有解决办法吗?

也不建议修改 fringes也不是 linum为我工作。我还能在哪里看?

如果我使用默认的白色背景和黑色前景,这些线条要么不出现,要么难以察觉(对我来说)。

这个问题最令人讨厌的是重绘(C-l)不会产生干净的文本。

最佳答案

该问题与 OS X 的 LCD 字体平滑算法和 emacs 用于实现滚动的算法之间的交互有关。

下图显示关闭(左)和打开(右)字体平滑。您可以在 System Preferences\General 中找到此设置。在这两种情况下,我都将程序滚动了一行。当 OS X 在字体平滑打开的情况下绘制“@”时,它不仅使用专用于“@”的像素,还使用相邻(空白)字符的蓝色像素。

emacs 滚动时,它只修改它认为需要修改的字符。如果字符为空白,滚动后仍为空白,则不对其进行修改。此优化在 2013 年仍然有效。换句话说,测试两个字符为空仍然比绘制一个字符便宜。但是这种优化在今天几乎没有必要,它会导致错误显示。

如果上述假设成立,那么接下来的问题就变成了是否可以关闭优化。是否可以要求 emacs 在每次滚动时重绘全屏,或者至少重绘与非空白字符相邻的空白字符。

Font smoothing off (left) and on (right)

人们当然可以简单地关闭字体平滑。放大的图像甚至可能表明未平滑的图像更好。在实践中,当字体以其自然(未放大)大小出现时,平滑使字符更清晰,无需使用更大的字体。

"c();"两边的模式下图中与该错误一致。 OS X 在左侧使用蓝色像素,在右侧使用红色/棕褐色像素(这可能与显示器上的 RGB 模式有关)。滚动时留下的垂直线是蓝色或红色/棕褐色/砖块,取决于它们是从滚动字符的左侧还是右侧掉出来。

blue hints on the left; red hints on the right

更新

现在问题在this nightly中得到解决.放大版c(); Emacs 24.3.50.1 生成的字体平滑显示与 Emacs 24.3.1 生成的字体平滑保持相同。但输出并不相同。每两行文本之间至少有一个额外的水平像素线。

关于OS X 上的 Emacs 滚动错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com