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のコードを見ると、face-remap.elこれを行う簡単な方法があると思います。

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

これは、基本的にline-numberバッファ部分に対して同じタスクを実行し、部分に対してtext-scale-adjust同じタスクを実行します。defaultheader-line

現在のバッファに対してのみ調整されます。

関連情報