如何更改 emacs 中特定缓冲区中的行号列字体比例?

如何更改 emacs 中特定缓冲区中的行号列字体比例?

我正在使用(global-display-line-numbers-mode) 和建议的代码https://unix.stackexchange.com/a/593889/441805 根据缓冲区文本字体比例调整行号列字体比例

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

但这有一个缺点,即行号列字体比例现在在每个缓冲区中都会发生变化。我使用的是 emacs 28.0.50

答案1

text-scale-adjust查看in的代码face-remap.el,我相信有一个简单的方法可以做到这一点:

(add-hook 'text-scale-mode-hook (lambda() (face-remap--remap-face 'line-number)))

这基本上对line-number缓冲区的部分执行相同的操作,text-scale-adjustdefaultheader-line部分执行相同的操作。

它只会针对当前缓冲区进行调整。

相关内容