PascalVKooten
PascalVKooten

Reputation: 21433

Display consecutive whitespace as dots in Emacs

This answer nicely provides a way to display characters rather than tabs (in the example it suggests ">", but I confirmed it works for ".").

It uses setting the active window display table to do it.

Now my goal is to display 4 spaces as 4 dots. Using the font-face and a regular expression, I am confident that I can display it nicely. I am aware that I could have Emacs automatically use tab characters rather than whitespaces, but I always prefer to have whitespace characters in my files.

I've also looked at whitespace mode, but I tweaked many parameters and in the end I never get the simple dots (with a face that makes it a little less "jump" out).

So: how can I, rather than display tab characters as dots, display 4 spaces elegantly as dots in Emacs?

Upvotes: 1

Views: 991

Answers (1)

abo-abo
abo-abo

Reputation: 20342

OK, here's how to mark 4 or more spaces at beginning of line

(setq whitespace-space-regexp "^\\( \\{4,\\}\\)")

And here's how to get rid of the centered dot character for space:

(setq whitespace-display-mappings
  '((space-mark   ?\     [?\ ]     [?.])
    (space-mark   ?\xA0  [?\ ]     [?_])
    (newline-mark ?\n    [?$ ?\n])
    (tab-mark     ?\t    [?\u00BB ?\t] [?\\ ?\t])))

The changes take effect not immediately but when you revert-buffer or close it and open again with customizations above already set.

Upvotes: 2

Related Questions