Как мне заставить Emacs показывать пустые места?

Как я могу заставить Emacs отображать пустые места (например, пробел, табуляцию, переход по строке и т. д.). Многие другие редакторы, такие как Kate и Eclipse, имеют эту функцию, и я считаю очень полезным видеть, когда код нарушается из-за сочетания пробелов и вкладок (особенно Python).

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
68
0
38 967
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Все возможные настройки для этого кажутся резюмировано здесь (пустой режим), а здесь и здесь (ShowWhiteSpace)

также:

(if (>= emacs-major-version 22)
  (progn
    ;; Mode to use with Emacs 22
    ;; http://emacswiki.org/cgi-bin/wiki/BlankMode
    (require 'blank-mode)
    ;; Mode not active by default: let's activate it
    (global-blank-mode t)
    ;; ... activate it when text mode where color syntax is not active by default
    (add-hook 'text-mode-hook 'blank-mode-on)
    ;; All invisible chars are shown, except newline char.
    (setq blank-chars '(tabs spaces trailing lines space-before-tab))
    ;; Show only for one color, no mark inserted
    (setq blank-style '(color))
    ;; Use for normal space (not shown)
    (set-face-background 'blank-space-face nil)
    (set-face-foreground 'blank-space-face "black")
    ;; used for non breakable space
    (set-face-background 'blank-hspace-face "PaleGreen")
    (set-face-foreground 'blank-hspace-face "black")
    ;; Used for spaces left of a tab
    (set-face-background 'blank-space-before-tab-face "orange")
    (set-face-foreground 'blank-space-before-tab-face "black")
    ;; Used for tab
    (set-face-background 'blank-tab-face "lemonchiffon")
    (set-face-foreground 'blank-tab-face "black")
    ;; used for extra space at the end of a line
    (set-face-background 'blank-trailing-face "gold")
    (set-face-foreground 'blank-trailing-face "black")
    ;; Used for line too long
    (set-face-background 'blank-line-face "snow2")
    (set-face-foreground 'blank-line-face "black")
  )
  (progn
    ;; For older Emacs prior to version 22.
    ;; http://www.emacswiki.org/cgi-bin/wiki/show-wspace.el
    (require 'show-wspace)
    (add-hook 'font-lock-mode-hook 'show-ws-highlight-tabs)
    (add-hook 'font-lock-mode-hook 'show-ws-highlight-hard-spaces)
    (add-hook 'font-lock-mode-hook 'show-ws-highlight-trailing-whitespace)
  )
)
Ответ принят как подходящий

Режим WhiteSpace - второстепенный режим Emacs для визуализации всех символов пробела в текущем буфере. Его можно активировать с помощью M-x whitespace-mode.

Вот скриншот WhiteSpace в действии, сделанный прямо из вики Emacs,

whitespace mode in action

Примечание. WhiteSpaceMode теперь заменяет BlankMode.

Спасибо за снимок экрана и ссылку, но вы забыли сообщить нам, как включить эту функцию. (Кстати, это M-x whitespace-mode.)

bug 15.08.2013 19:54

отступ-сломанный? - никогда не используйте вкладки в коде - в наши дни дисковое пространство дешево.

Поместите (setq-default indent-tabs-mode nil) в ваш файл .emacs. Привыкайте набирать C-x h M-x untabify, чтобы развернуть весь буфер. Для поиска вкладок введите C-s C-i. Если у вас есть непонятные управляющие символы в ваших буферах, вы можете увидеть их с помощью M-x hexl-mode.

Также C-x h M-x indent-region сделает отступ для всего буфера. Некоторые режимы, такие как vhdl-mode, имеют команду украшения региона.

У разных разработчиков в моей команде разные предпочтения в отношении ширины вкладок. Установка всего на пробелы облажает остальную команду. Тем не менее, спасибо за игру.

warfangle 27.08.2010 20:03

Для записи: это должен быть C-h f untabify вместо C-x h M-x untabify.

To1ne 08.02.2011 00:04

Emacs хорош не только для кода, но и для других типов файлов (например, файлов данных, разделенных табуляцией)! Аккуратно, а?

Anne 09.08.2011 19:59

@ To1ne C-h f untabify: справка по untabify. C-x h M-x untabify: отметьте буфер, затем запустите untabify.

Jerome Baum 19.01.2012 21:18

Другие вопросы по теме