我在我的Emacs中使用linum-mode得到了这个图形错误。我尝试从23升级到24(通过git),我已尝试使用各种提供的二进制文件在线和我的家庭编译版本。我真正感兴趣的是从哪里开始诊断问题。
如果我在屏幕上滚动撕裂的行号并重新登录,问题就会消失。
答案 0 :(得分:11)
我遇到了同样的问题,花了很多时间试图解决它。图形错误是linum-mode与渲染边缘之间冲突的结果。不幸的是,我无法解决linum.el中的问题,并且条纹显示代码是C源代码的一部分。
它仍然可以完成!解决问题的最简单方法就是关闭边缘。
M-x fringe-mode RET none RET
为了使边缘永久保持关闭,我建议使用M-x customize-group RET fringe
自定义设置,因为Mac OS X的某些编译版本的Emacs有自己的边缘设置,可以覆盖.emacs文件的部分。
我真的不需要那些换行指示器,所以没有条纹不会打扰我。但是,我确实错过了行号和缓冲区文本之间的轻微分离。我按照Emacs Wiki上的一篇文章的建议来恢复这个间距。在linum的0.9x版本中,从
更改第160行(setq width (max width (length str)))
到
(setq width (max width (+ (length str) 1)))
此更改的灵感来自:http://www.emacswiki.org/emacs/LineNumbers
源链接上有参数来设置linum-format
变量而不是修改linum.el。虽然我了解它们的来源,但是现在大多数颜色主题都会为额外的空间着色,而不是提供我正在寻找的东西(大约是一个背景颜色的空间)。如果你编辑linum.el,请确保运行
M-x emacs-lisp-byte-compile-and-load
使更改持久化。您可以通过查看此处的图片中光标前的空格来查看结果:http://i.stack.imgur.com/TxyMr.png(我没有足够的声誉来嵌入图像)。
没有更多图形工件!
答案 1 :(得分:8)
我遇到了同样的问题,我想出了一个解决方案,虽然它不是最漂亮的,但由于行号左边有一个额外的空间,它比改变linum.el更优雅。这是我的〜/ .emacs:
的相关部分;; Linum mode
(global-linum-mode t)
;; Offset the number by two spaces to work around some weird fringe glitch
(setq linum-format " %d ")
这会消除边缘叠加问题,除了抵消行号之外没有任何其他影响。
答案 2 :(得分:0)
这就是我在.emacs
设置的方式,我没有遇到问题,虽然我也没有使用带有gtk或任何其他gui的emacs。
(linum-mode +1)
(setq linum-format“%d”)
您可能想要使用(setq linum-format)
进行攻击,看看是否可以获得良好的效果。另外,请不要忘记浏览emacswiki on linum。
答案 3 :(得分:0)
要在行号和缓冲区文本之间进行分隔,以下更改会更好:
在linum版本0.9x中,从
更改第150行(concat“%”(数字到字符串w)“d”)))))
到
(concat“%”(数字到字符串w)“d”)))))
这使得分色与行号'具有相同的背景颜色。
答案 4 :(得分:0)
问题仍然存在于emacs 24.4,OS X 10.10.1上。 我制定的解决方案: 加载您选择的主题后:
(load-theme 'whatever)
(set-face-attribute 'fringe nil :background (face-background 'default))