Alguma maneira de obter uma linha separadora de trabalho entre os números de franja / linha e o buffer?

7

existe alguma maneira de obter um separador como o dos buffers divididos (linha no meio da imagem) para os números de linha / franja?

Eu tentei, (setq linenum-format "%4d \u2502 ")mas isso me dá um buggy linhas quebradas estranhas com larguras variadas -.-

linhas separadoras quebradas

nemesit
fonte

Respostas:

3

Existem algumas maneiras de fazer isso - meu método preferido é definir os padrões de quadro para as 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))

É possível definir as franjas das janelas globalmente:

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

Também é possível definir as franjas das janelas localmente:

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

Aqui está a sequência de documentos para left-fringe-widthe 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'.

Exemplo

lista de leis
fonte
Corrija-me se estiver errado, mas isso muda apenas a cor de fundo da franja e não adiciona uma linha separadora entre a franja e o buffer.
Nemesit
O código proposto oferece uma maneira de controlar a espessura e a cor da franja, ou a franja pode ser totalmente eliminada. A captura de tela contém uma linha vertical não relacionada para um modo de mira personalizado que eu uso; no entanto, isso está além do escopo do exemplo de modificação adicional nesta resposta. Aqui está um link para uma pergunta relacionada, na qual os comentários indicam que uma linha vertical extra não é facilmente realizada: stackoverflow.com/q/25760235/2112489
lawlist
Sim, alterar a espessura da franja não é exatamente o que eu estava procurando, porque gostaria de manter os números das franjas e das linhas. É estranho que o emacs possa exibir facilmente uma linha entre os buffers, mas adicionar um para separar os números de linha e a margem parece ser uma tarefa impossível.
Nemesit
0

Eu também quero uma maneira de diferenciar entre a coluna do número da linha e o código. É assim que eu faço isso.

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

Aqui está uma captura de tela deste ... ... com o tema Lovaina no SpaceMacs

Você tem outras opções que podem ser encontradas no arquivo faces.el.

Não responde à pergunta, mas resolve o problema subjacente para mim. Também é assim que o vim costuma fazer isso.

Brian Oney
fonte