在emacs中使用linum-mode时,当M-x text-scale-increase
增加字体时,有一件事困扰着我。行号的字体与阅读的大小相同,不适合到缓冲区左侧的left-margin
!
1 正常字体大小,OK
2 增加字体大小,不再可读FUUUUU
What I'd really like to have:
当增加/减少字体时,我想要其中一个工作
然后不要更改左边距的字体,而是在行号之间增加/减少间距
有人有什么建议吗? 谢谢,伙计们
答案 0 :(得分:11)
看看这两个链接:
它足以满足我的需求。
示例:
1
答案 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)