web-dev-qa-db-fra.com

Comment faire pour que Emacs affiche des espaces vides?

Comment puis-je faire en sorte qu'Emacs affiche des espaces vides (comme un espace, une tabulation, un saut de ligne, etc.). Beaucoup d'autres éditeurs comme Kate et Eclipse ont cette fonctionnalité et je trouve très utile de voir quand le code est cassé en raison du mélange d'espaces et d'onglets (en particulier Python).

66
pupeno

WhiteSpace mode est un mode mineur d'Emacs pour visualiser tous les caractères d'espaces blancs dans le tampon actuel.

Voici une capture d'écran de WhiteSpace en action prise directement depuis le wiki Emacs,

whitespace mode in action

Remarque: WhiteSpaceMode a maintenant remplacé BlankMode

65
Justin Tanner

Tous les paramètres possibles pour le faire semblent être résumés ici (mode vierge) et ici et ici (ShowWhiteSpace)

aussi:

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

indenté? - n'utilisez jamais d'onglets dans votre code - l'espace disque est bon marché de nos jours.

Mettez (setq-default indent-tabs-mode nil) dans votre fichier .emacs. Habituez-vous à taper C-x h M-x untabify pour dénaturer tout le tampon. Pour rechercher des onglets, tapez C-s C-i. Si vous avez des caractères de contrôle obscurs dans vos tampons, vous pouvez les voir avec M-x hexl-mode.

Aussi C-x h M-x indent-region mettra en retrait l'intégralité du tampon. Certains modes comme le mode vhdl ont une commande d'embellissement de région.

4
user37248