EMACS :: linum-mode和字体大小(不可读的行号)

时间:2012-02-16 01:20:52

标签: emacs font-size

在emacs中使用linum-mode时,当M-x text-scale-increase增加字体时,有一件事困扰着我。行号的字体与阅读的大小相同,不适合到缓冲区左侧的left-margin

1 正常字体大小,OK Everything works as should be

2 增加字体大小,不再可读FUUUUU enter image description here


What I'd really like to have:

增加/减少字体时,我想要其中一个工作

  1. 然后相应地增加/减少左边距(相应左边缘)的宽度
  2. 然后不要更改左边距的字体,而是在行号之间增加/减少间距

    有人有什么建议吗?  谢谢,伙计们

6 个答案:

答案 0 :(得分:11)

看看这两个链接:

  1. my question on the same issue
  2. my workaround for this issue
  3. 它足以满足我的需求。

    示例:

    enter image description here 1 enter image description here

答案 1 :(得分:6)

我想我可以使用以下代码修复该问题:

(require 'linum)
(defun linum-update-window-scale-fix (win)
  "fix linum for scaled text"
  (set-window-margins win
          (ceiling (* (if (boundp 'text-scale-mode-step)
                  (expt text-scale-mode-step
                    text-scale-mode-amount) 1)
              (if (car (window-margins))
                  (car (window-margins)) 1)
              ))))
(advice-add #'linum-update-window :after #'linum-update-window-scale-fix)

似乎有效,至少24.5。

答案 2 :(得分:6)

我见过的最简单,最直接的解决方案是将行号设置为固定高度。根据{{​​3}}的回答user78810

,这很容易实现。

即便如此,请在您的emacs配置中添加以下行(如果您正在使用spacemacs,则添加到dotspacemacs/user-config功能):

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

答案 3 :(得分:5)

M-x customize-face [RETURN] linum-mode

答案 4 :(得分:3)

如果可以的话,我会根据customize-face评论解决方案。这对我来说很有用。实际面部是linum而不是linum-mode,至少在emacs-24.3.1中。在自定义缓冲区中,我点击了"显示所有属性"然后将面高设置为十分之一点。如果您可以接受行号的固定大小的面(就像我一样),基于customize-face的解决方案很简单。

答案 5 :(得分:2)

您可以禁用linum-mode并改用display-line-numbers-mode,这是Emacs自版本26起的一部分,并且在增加字体大小时可以很好地缩放。

例如您的配置如下所示:

;; (global-linum-mode 1)
(global-display-line-numbers-mode)