Hoe zorg ik ervoor dat Emacs lege spaties laat zien?

Hoe kan ik ervoor zorgen dat Emacs lege spaties toont (zoals een spatie, een tab, een regelsprong, enz.). Veel andere editors zoals Kate en Eclipse hebben deze functie en ik vind het erg handig om te zien wanneer code inspringt vanwege de combinatie van spaties en tabs (met name Python).


Antwoord 1, autoriteit 100%

WhiteSpace-modus is een secundaire modus van Emacs voor het visualiseren van alle witruimtetekens in de huidige buffer. Het kan worden geactiveerd met M-x whitespace-mode.

Hier is een screenshot van WhiteSpace in actie, rechtstreeks overgenomen van de Emacs-wiki,

witruimtemodus in actie

Opmerking: WhiteSpaceMode heeft nu BlankMode vervangen


Antwoord 2, autoriteit 7%

Alle mogelijke instellingen om dat te doen lijken hier samengevat (blanco-modus)en hier en hier (ShowWhiteSpace)

ook:

(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)
  )
)

Antwoord 3, autoriteit 6%

inspringing gebroken? – gebruik nooit tabs in je code – schijfruimte is tegenwoordig goedkoop.

Zet (setq-default indent-tabs-mode nil)in uw .emacs-bestand. Wen er aan om C-x h M-x untabifyte typen om de hele buffer ongedaan te maken. Typ C-s C-iom naar tabbladen te zoeken. Als je obscure controletekens in je buffers hebt, kun je ze zien met M-x hexl-mode.

Ook C-x h M-x indent-regionzal de hele buffer inspringen. Sommige modi, zoals vhdl-mode, hebben een opdracht voor het verfraaien van de regio.

Other episodes