2012-02-16 22 views
19

Cuando uso linum-mode en emacs y cuando aumenta la fuente en M-x text-scale-increase, hay una cosa que me molesta. La fuente para los números de línea tiene el mismo tamaño que la lectura y no se ajustan a en left-margin en el lado izquierdo del búfer.EMACS :: modo lineal y tamaño de fuente (números de línea ilegibles)

1 tamaño de letra normal, OK Everything works as should be

2 El aumento de tamaño de fuente, ya no es legible fuuuuu enter image description here


What I'd really like to have:

Cuando aumentar/disminuir fuente Quiero uno de estos para trabajar

  1. continuación aumento/disminución de la anchura de la izquierda margen (resp. izquierda-marginal) de acuerdo con
  2. Entonces no cambiar la fuente de izquierda margen sino aumentar/disminuir el espaciado entre los números de línea

    ¿Alguien tiene algunas sugerencias? Gracias, chicos

Respuesta

10

Eche un vistazo a estos dos enlaces:

  1. my question on the same issue
  2. my workaround for this issue

Funciona bastante bien lo suficiente para mis necesidades.

Ejemplos:

enter image description hereenter image description here

+0

+1 Estoy bastante satisfecho. Definitivamente es una buena manera de hacerlo, 'pero' hay algunos problemas con esto. Por ejemplo, los números de línea no siempre disminuyen su tamaño. No entiendo todo el código, probablemente se pueda resolver, pero aún no sé cómo. No marque esta respuesta como 'aceptada' en este momento, Peter. Probablemente lo haga después. Gracias. – DinGODzilla

+0

El método se basa en escalar por un factor * fijo * de 1.04 (elegido como un valor * razonable *). Esta disminución lineal no siempre coincide con el * siguiente * tamaño de fuente disponible, por lo que debe presionar la tecla nuevamente hasta que se ajuste al siguiente tamaño disponible. Esto ocurre con mayor frecuencia a medida que el tamaño de la fuente se hace más pequeño. Trabajé alrededor para hacer un zoom más grande, construyendo empíricamente una lista de los incrementos de escala necesarios para saltar directamente a la siguiente fuente. Esta lista se adapta a mi fuente, pero como mencioné en uno de mis enlaces, no sé cómo determinar el tamaño de la siguiente fuente disponible. –

+0

PD: Puede ver en la lista 'sub-zoom-ht', que es una lista de tamaños de fuente para un número dado de escalas (el índice), que hay muchos tamaños de fuente repetitivos. La lógica * zoom larger * usa esta lista, pero no hay una lista equivalente para * zoom smaller * .. No valía la pena molestarse, ya que no es la forma "correcta" de hacerlo, y consumía mucho tiempo , y funciona .. Un día puedo tropezar con cómo acceder a la información de la fuente directamente ... –

4
M-x customize-face [RETURN] linum-mode 
2

me gustaría comentar la solución basada en customize-face si pudiera. Funciona bien para mí La cara real es linum en lugar de linum-mode, al menos en mi emacs-24.3.1. En el búfer de personalización, hice clic en "Mostrar todos los atributos" y luego establecí la altura de la cara en 100 décimas de punto. Si una cara de tamaño fijo para los números de línea es aceptable para usted (como lo es para mí), la solución basada en customize-face es sencilla.

6

creo que puedo solucionar ese problema con el siguiente código:

(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) 

Parece que funciona, al menos con el 24,5.

4

La solución más sencilla y directa que he visto es establecer los números de línea a una altura fija.Esto se puede lograr fácilmente, de acuerdo con user78810 's respuesta: https://unix.stackexchange.com/questions/29786/font-size-issues-with-emacs-in-linum-mode/146781#146781

A saber, agregue la siguiente línea en su configuración de emacs (oa su función dotspacemacs/user-config, si está usando spacemacs):

(eval-after-load "linum" 
    '(set-face-attribute 'linum nil :height 100)) 
Cuestiones relacionadas