Emacs text-scale-adjust 导致行号列逐渐缩小并消失

Emacs text-scale-adjust 导致行号列逐渐缩小并消失

我已经设置了emacs显示行号(global-linum-mode 1),它一直有效,直到我开始通过放大文本text-scale-adjust

行号列开始缩小,并在几次增量后完全消失。
当它完全消失时,进一步的增量对左边缘不再有影响。

这是一个已知问题吗?有解决方法吗?

在 Ubuntu 10.04 中使用 GNU Emacs 23.1.1。

答案1

这是一个解决方法。它适用于我的emacs23.1.1。同样的问题再次出现(几个月后),我学到了一个少量大约elisp在同一时间,所以我尝试了一下。请参阅以下链接以获取我的答案。 linum 模式下 Emacs 的字体大小问题

答案2

我见过的最简单、最直接的解决方案就是将行号设置为固定高度。这可以很容易地完成,根据用户78810的回答:linum 模式下 Emacs 的字体大小问题

也就是说,将以下行添加到您的 emacs 配置中(或者添加到您的dotspacemacs/user-config函数中,如果您要排除邪恶的风格):

(eval-after-load "linum"
  '(set-face-attribute 'linum nil :height 100))

答案3

这是我的解决方案。可能想改变以前line-number的面容。display-line-numbers-modelinum

(defun post-text-scale-callback ()
  ;; fix line number text size
  (let ((new-size (floor (* (face-attribute 'default :height)
                            (expt text-scale-mode-step text-scale-mode-amount)))))
    (set-face-attribute 'line-number nil :height new-size)
    (set-face-attribute 'line-number-current-line nil :height new-size)))

(add-hook 'text-scale-mode-hook 'post-text-scale-callback)

相关内容