4

Я использую emacs prelude и хочу сохранить пустые места при сохранении, но предпочитаю не показывать пробелы в конце, потому что цвет в моей цветовой теме неприятный, однако, кажется, что я не могу настроить лицо пустого пространства, используя customize-Faces , это просто не работает, даже если я отключил лица. Есть ли другие параметры / функции для изменения пробела? или как я могу просто отключить подсветку пробелов, но при этом сохранить чистоту при сохранении

2 ответа2

6

Вот мои собственные настройки .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"))))
  )
2

Я сам не использую 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 .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .