¿Alguna forma de obtener una línea de separación que funcione entre los números de línea / franja y el búfer?

7

¿Hay alguna forma de obtener un separador como el de los búferes divididos (línea en el centro de la imagen) para los números de línea / franja?

Lo intenté (setq linenum-format "%4d \u2502 ")pero eso me da un error con líneas discontinuas raras con diferentes anchos.

líneas de separación rotas

nemesit
fuente

Respuestas:

3

Hay algunas maneras de hacer esto: mi método preferido es establecer los valores predeterminados del marco para las franjas:

(set-face-attribute 'fringe nil :background "red")
(add-to-list 'default-frame-alist '(left-fringe . 11))
(add-to-list 'default-frame-alist '(right-fringe . 0))

Es posible configurar las franjas de Windows a nivel mundial:

(setq-default left-fringe-width 11)
(setq-default right-fringe-width 0)

También es posible configurar las franjas de Windows localmente:

(setq left-fringe-width 11)
(setq right-fringe-width 0)

Aquí está la cadena de documentos para left-fringe-widthy right-fringe-width:

Automatically becomes buffer-local when set.

Documentation:
Width of this buffer's left/right fringe (in pixels).
A value of 0 means no left/right fringe is shown in this buffer's window.
A value of nil means to use the left/right fringe width from the window's frame.

Setting this variable does not take effect until a new buffer is displayed
in a window.  To make the change take effect, call `set-window-buffer'.

Ejemplo

lista de leyes
fuente
Corrígeme si me equivoco, pero eso solo cambia el color de fondo de la franja y no agrega una línea de separación entre la franja y el búfer.
nemesit
El código propuesto ofrece una forma de controlar el grosor y el color de la franja, o la franja se puede eliminar por completo. La captura de pantalla contiene una línea vertical no relacionada para un modo de cruz personalizado que uso; sin embargo, eso está más allá del alcance del ejemplo de modificación marginal en esta respuesta. Aquí hay un enlace a una pregunta relacionada donde los comentarios indican que una línea vertical adicional no se logra fácilmente: stackoverflow.com/q/25760235/2112489
lawlist
Sí, cambiar el grosor de la franja no es exactamente lo que estaba buscando porque me gustaría mantener los números de la franja y la línea. Es extraño que emacs pueda mostrar fácilmente una línea entre buffers, pero agregar uno para separar los números de línea y el margen parece ser una tarea imposible.
nemesit
0

Yo también quiero una manera de diferenciar entre la columna del número de línea y el código. Así es como hago eso.

(set-face-attribute 'line-number nil :background "gray96" :foreground "gray42")
(set-face-attribute 'line-number-current-line nil :foreground "gray6")

Aquí hay una captura de pantalla de esto ... ... con el tema leuven en spacemacs

Tiene otras opciones que puede encontrar en el archivo faces.el.

No responde la pregunta, pero resuelve el problema subyacente para mí. Así es como vim lo hace a menudo.

Brian Oney
fuente