Я использую emacs prelude и хочу сохранить пустые места при сохранении, но предпочитаю не показывать пробелы в конце, потому что цвет в моей цветовой теме неприятный, однако, кажется, что я не могу настроить лицо пустого пространства, используя customize-Faces , это просто не работает, даже если я отключил лица. Есть ли другие параметры / функции для изменения пробела? или как я могу просто отключить подсветку пробелов, но при этом сохранить чистоту при сохранении
2 ответа
Вот мои собственные настройки .emacs
(пользовательская настройка). Непосредственно над whitespace-style
есть дополнительные параметры, которые можно активировать, добавив их в определение whitespace-style
. Вместо использования global-whitespace-mode
, я предпочитаю использовать (whitespace-mode t)
с некоторыми ловушками основного режима. whitespace-cleanup
- это функция, которая не зависит от выделения заднего пробела.
;; (global-whitespace-mode t)
(setq whitespace-display-mappings '(
(space-mark ?\ [?\u00B7] [?.])
(space-mark ?\xA0 [?\u00A4] [?_])
(newline-mark ?\n [?¶ ?\n])
(tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t])
))
;; lines lines-tail newline trailing space-before-tab space-afte-tab empty
;; indentation-space indentation indentation-tab tabs spaces
(setq whitespace-style '(face space-mark tab-mark newline-mark) )
(setq whitespace-line-column 85)
(custom-set-faces
'(whitespace-space ((t (:bold t :foreground "gray75"))))
'(whitespace-empty ((t (:foreground "firebrick" :background "SlateGray1"))))
'(whitespace-hspace ((t (:foreground "lightgray" :background "LemonChiffon3"))))
'(whitespace-indentation ((t (:foreground "firebrick" :background "beige"))))
'(whitespace-line ((t (:foreground "black" :background "red"))))
'(whitespace-newline ((t (:foreground "orange" :background "blue"))))
'(whitespace-space-after-tab ((t (:foreground "black" :background "green"))))
'(whitespace-space-before-tab ((t (:foreground "black" :background "DarkOrange"))))
'(whitespace-tab ((t (:foreground "blue" :background "white"))))
'(whitespace-trailing ((t (:foreground "red" :background "yellow"))))
)
Я сам не использую Prelude; в общем рекомендую против Emacs "стартовые пакеты". Они имеют тенденцию сильно настраивать редактор способами, которые не всегда очевидны или хорошо документированы, и тогда у вас возникают проблемы с такими вещами, как настройка пробела, которая должна быть очень простой. Лучше начать с изучения собственно Emacs, а затем собрать собственные настройки по вкусу.
Тем не менее, глядя на источник prelude/core/prelude-editor.el, я нахожу это:
(defcustom prelude-whitespace t
"Non-nil values enable Prelude's whitespace visualization."
:type 'boolean
:group 'prelude)
что настоятельно рекомендует, чтобы M-x customize-variable RET prelude-whitespace RET
, затем установив значение на nil
и применив изменение, должна произвести желаемое поведение. (Поведение обрезки контролируется отдельной переменной настройки prelude-clean-whitespace-on-save
.)