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

Din*_*lla 20 emacs font-size

在emacs中使用linum-mode时,当增加字体时M-x text-scale-increase,有一件事困扰着我.字体为行号有相同尺寸的阅读和不适合进入left-margin的缓冲区的左侧!

1 普通字体大小,好的一切都按原样运作

2 增加字体大小,不再可读FUUUUU在此输入图像描述


What I'd really like to have:

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

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

    有人有什么建议吗?多谢你们

Pet*_*r.O 11

看看这两个链接:

  1. 我对同一个问题的看法
  2. 我解决这个问题的方法

它足以满足我的需求.

例子:

在此输入图像描述 1 在此输入图像描述


Sho*_*hon 6

我见过的最简单,最直接的解决方案是将行号设置为固定高度.根据user78810的回答,这很容易实现:https://unix.stackexchange.com/questions/29786/font-size-issues-with-emacs-in-linum-mode/146781#146781

dotspacemacs/user-config也就是说,在emacs配置中添加以下行(如果您使用的是spacemacs,则添加到您的函数中):

(eval-after-load "linum"
  '(set-face-attribute 'linum nil :height 100))
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 5

M-x customize-face [RETURN] linum-mode
Run Code Online (Sandbox Code Playgroud)


小智 5

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

(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)
Run Code Online (Sandbox Code Playgroud)

它似乎工作,至少24.5.

  • 在Emacs 26.1上,这会不断增加行号列的宽度,最终使窗口不可用。 (2认同)