Глобальная нумерация строк прерывистая - конфликт с глобальным пробелом
Я имею (global-linum-mode 1)
а также (global-whitespace-mode t)
определено в моем init.el с Aquamacs 2.4. Нумерация строк прерывистая и пропускает отображение номера строки после пустой строки. Отключение пробелов устраняет проблему. Есть ли способ отобразить номер строки для каждой строки, а также включить пробелы?
Возможно, есть альтернатива linum.el, которая делает что-то очень похожее?
В следующем примере знак доллара представляет собой пустую строку без текста.
1 First line.
2 Second line.
3 $
Fourth line.
5 $
Sixth Line.
7 Seventh line.
8 $
Ninth line.
1 ответ
Решение № 1 - с http://www.emacswiki.org/LineNumbers (цитируя Майкла Хоффмана) - размещено там по другой причине, но также решает мою проблему:
(eval-after-load 'linum
'(progn
(defface linum-leading-zero
`((t :inherit 'linum
:foreground ,(face-attribute 'linum :background nil t)))
"Face for displaying leading zeroes for line numbers in display margin."
:group 'linum)
(defun linum-format-func (line)
(let ((w (length
(number-to-string (count-lines (point-min) (point-max))))))
(concat
(propertize (make-string (- w (length (number-to-string line))) ?0)
'face 'linum-leading-zero)
(propertize (number-to-string line) 'face 'linum))))
(setq linum-format 'linum-format-func)))
Решение № 2:
(setq linum-format "%d")
К вашему сведению: A:
Для тех, кто интересуется, как решить связанную проблему, когда различные цвета пробелов (и / или выделение текущей строки) вторгаются в левое поле, которое зарезервировано для нумерации строк, установка фоновой окраски этой области устраняет проблему. Передний план и / или фон номеров строк могут быть определены пользователем. Решение номер один выше может быть изменено также путем добавления определения цвета после слова foreground
в строке 5 - например, :foreground "red", ...
Следующий фрагмент представляет собой отдельную строку, которая будет предшествовать или следовать всему обходному пути, упомянутому в решении номер один, и изменяться в соответствии с любыми цветами, которые пожелает пользователь:
(custom-set-faces '(linum ((t (:foreground "red" :background "white" :height 120 :family "Courier")))) )
К вашему сведению: B: я изменил строку 13 решения номер один, чтобы устранить 0
и замените его простым старым пробелом, потому что я не привык видеть начальные нули и просто искал решение начальной проблемы, описанной в этой теме. Решение № 2 выглядит заподлицо слева, а решение № 1 заподлицо справа. Просто вопрос личных предпочтений. Есть, несомненно, несколько других возможностей для изменения linum-format
к чему-то, кроме динамического по умолчанию, определенного в linum.el
,