modo de número de línea híbrido en emacs?

11

¿Es posible mostrar el número absoluto de la línea actual, en lugar de "0", en el modo de número de línea relativo? Esto a veces se denomina "modo de número de línea híbrido".

Me gusta esto:

 7                                                                                                      
  6          this.oscs[i].oscillator.start();                                                            
  5        }                                                                                             
  4                                                                                                      
  3        this.bindController();                                                                        
  2      };                                                                                              
  1                                                                                                      
252      factory.stop = function () {  <- current line number shows                                                                                       
  1        console.log('theremin: now in stop 2');                                                       
  2        this.leapController.disconnect();                                                             
  3        //this.leapController.removeListener('frame', factory.ctrlFrameHandler);                      
  4        //this.leapController.removeListener('frame', this.ctrlFrameHandler);                         
  5        this.leapController.removeListener('frame', this.leapController.listeners('frame')[0]); 

Así es como lo haces en vim .

Estoy ejecutando evil, y activo el modo de número de línea relativo en mis .emacs de esta manera:

(linum-mode)
(linum-relative-global-mode)

No veo ningún paquete para esto, ni ninguna personalización disponible para él en los paquetes existentes. Estoy un poco familiarizado con elisp, por lo que podría ser posible descubrir cómo conectar el código existente, por ejemplo, con consejos, pero prefiero evitar esa ruta si es posible.

Muchas gracias.

vt5491
fuente
linum-relative-global-modees proporcionado por evil?
phils
no, es parte del paquete estándar de emacs 'relativo al lino'. Running evil probablemente no tiene nada que ver con esta pregunta, aparte del hecho de que los números de línea relativos son más útiles para los 'usuarios vi', es decir, las personas que ejecutan evil. Solo pensé en mencionarlo en caso de que sea relevante.
vt5491
No existe dicho paquete (ni "linum-relative") en el repositorio estándar, y no una biblioteca predeterminada. ¿Quizás quiso decir uno de los repositorios de paquetes no estándar? Siempre debe ser específico sobre cualquier biblioteca no estándar a la que se refiera.
Phil
github.com/coldnew/linum-relative . Por 'estándar' no quise decir parte de la base de emacs, sino solo un paquete "estándar", por ejemplo, "ordinario" bajo melpa. Y sí, lo escribí mal: es 'relativo a linum' no 'relativo a Linum'. Perdón por la confusion.
vt5491
FWIW, Emacs 26 trae numeración de línea nativa (lectura: rápida), que puede ser híbrida si se establece display-line-numbersen relativey display-line-numbers-current-absolutepara t(el valor predeterminado).
Basil

Respuestas:

10

Puede hacer que se muestre el número de línea actual en lugar de "0" personalizando la linum-relative-current-symbolvariable.

Puede cambiar esa variable de varias maneras.

  • Mx personalizar-grupo RET linum-relativo RET

    A partir de ahí, personalice la variable "Símbolo de corriente relativa de Linum" (cuyo valor predeterminado es 0). Si presiona el enlace "Más", debajo de él, se leerá la descripción completa de la variable:

    El símbolo que desea mostrar en la línea actual, por defecto es 0.

    Puede usar cualquier cadena como "->". Si esta variable es una cadena vacía, linum-relative mostrará el número de línea real en la línea actual.

    Por lo tanto, establezca ese valor en cadena vacía, simplemente elimínelo 0y presione "Aplicar y guardar".

  • Otra forma es agregar lo siguiente a su configuración de emacs y evaluarlo:

    (setq linum-relative-current-symbol "")
Kaushal Modi
fuente
-1

Estoy ejecutando spacemacs y M-x linum-relative-modehace esto exactamente.

También puedes agregar:

(setq-default dotspacemacs-line-numbers 'relative)

a la dotspacemacs/user-configfunción .spacemacspara establecer números de línea en este estilo de forma permanente.

nico
fuente