Gibt es eine Möglichkeit, eine funktionierende Trennlinie zwischen Streifen- / Zeilennummern und dem Puffer zu erhalten?

7

Gibt es eine Möglichkeit, ein Trennzeichen wie das für die geteilten Puffer (Zeile in der Bildmitte) für die Zeilennummern / Streifen zu erhalten?

Ich habe es versucht, (setq linenum-format "%4d \u2502 ")aber das gibt mir einen Buggy seltsame unterbrochene Linien mit unterschiedlichen Breiten -.-

unterbrochene Trennlinien

nemesit
quelle

Antworten:

3

Es gibt einige Möglichkeiten, dies zu tun. Meine bevorzugte Methode besteht darin, die Frame-Standardeinstellungen für die Streifen festzulegen:

(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 ist möglich, die Fensterränder global festzulegen:

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

Es ist auch möglich, die Fensterränder lokal einzustellen:

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

Hier ist die Dokumentzeichenfolge für left-fringe-widthund 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'.

Beispiel

Gesetzesliste
quelle
Korrigieren Sie mich, wenn ich falsch liege, aber dies ändert nur die Hintergrundfarbe des Randes und fügt keine Trennlinie zwischen Rand und Puffer hinzu.
Nemesit
Der vorgeschlagene Code bietet eine Möglichkeit, die Dicke und Farbe des Randes zu steuern, oder der Rand kann vollständig entfernt werden. Der Screenshot enthält eine nicht verwandte vertikale Linie für einen benutzerdefinierten Fadenkreuzmodus, den ich verwende. Dies würde jedoch den Rahmen des Beispiels für Streifenmodifikationen in dieser Antwort sprengen. Hier ist ein Link zu einer verwandten Frage, bei der die Kommentare darauf hinweisen, dass eine zusätzliche vertikale Linie nicht einfach zu erreichen ist: stackoverflow.com/q/25760235/2112489
lawlist
Ja, das Ändern der Randdicke ist nicht genau das, wonach ich gesucht habe, weil ich sowohl Rand- als auch Zeilennummern behalten möchte. Es ist seltsam, dass Emacs leicht eine Zeile zwischen Puffern anzeigen können, aber das Hinzufügen einer Zeile zu separaten Zeilennummern und dem Rand scheint eine unmögliche Aufgabe zu sein.
Nemesit
0

Ich möchte auch eine Möglichkeit, zwischen der Zeilennummernspalte und dem Code zu unterscheiden. So mache ich das.

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

Hier ist ein Screenshot davon ... ... mit dem Leuven-Thema in Spacemacs

Sie haben andere Optionen, die Sie in der Dateiaces.el finden.

Es beantwortet die Frage nicht, löst aber das zugrunde liegende Problem für mich. So macht es auch vim oft.

Brian Oney
quelle