簡體   English   中英

EMACS :: linum 模式和字體大小(不可讀的行號)

[英]EMACS :: linum-mode and size of font (unreadable line numbers)

當在 emacs 中使用 linum-mode 並且通過Mx text-scale-increase增加字體時,有一件事情困擾着我。 行號的字體與閱讀的大小相同,並且不適合緩沖區left-margin

1正常字體大小,OK一切正常

2增加字體大小,不再可讀 FUUUUU在此處輸入圖片說明


What I'd really like to have:

增加/減少字體時,我希望其中之一起作用

  1. 然后相應地增加/減少左邊距(相應的左邊緣)的寬度
  2. 然后不要更改左邊距的字體,而是增加/減少行號之間的間距

    有人有什么建議嗎? 謝謝你們

看看這兩個鏈接:

  1. 我在同一個問題上的問題
  2. 我對這個問題的解決方法

它非常適合我的需要。

例子:

在此處輸入圖片說明 1在此處輸入圖片說明

我見過的最簡單、最直接的解決方案是將行號設置為固定高度。 根據user78810的回答,這可以輕松完成: https : //unix.stackexchange.com/questions/29786/font-size-issues-with-emacs-in-linum-mode/146781#146781

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

(eval-after-load "linum"
  '(set-face-attribute 'linum nil :height 100))
M-x customize-face [RETURN] linum-mode

我想我可以用以下代碼解決這個問題:

(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 下是有效的。

如果可以的話,我會評論基於customize-face的解決方案。 這對我來說很有用。 實際的面孔是linum而不是linum-mode ,至少在我的emacs-24.3.1 在自定義緩沖區中,我單擊“顯示所有屬性”,然后將面高度設置為 100 個點。 如果您可以接受行號的固定大小的面(對我來說也是如此),那么基於customize-face的解決方案很簡單。

您可以禁用linum-mode並使用display-line-numbers-mode而不是 Emacs 的一部分,因為版本 26 並且在增加字體大小時可以很好地縮放。

例如,您的配置可能如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM