2008-11-16 8 views
64

¿Cómo puedo hacer que Emacs muestre espacios en blanco (como un espacio, una pestaña, un salto de línea, etc.). Muchos otros editores, como Kate y Eclipse, tienen esta característica y me parece muy útil ver cuándo el código se sangra: roto por la combinación de espacios y pestañas (particularmente Python).¿Cómo hago que Emacs muestre espacios en blanco?

Respuesta

62

modo de espacio en blanco es un modo menor Emacs para visualizar todos los caracteres de espacio en blanco en el búfer.

http://www.emacswiki.org/emacs/WhiteSpace

Aquí es una captura de pantalla de espacio en blanco en la acción tomada directamente desde el wiki de Emacs,

alt text http://www.emacswiki.org/pics/static/WhiteSpaceOnLight.png

Nota: WhiteSpace ha sustituido BlankMode

+22

Gracias por la captura de pantalla y el enlace, pero se olvidó de decirnos cómo activar esa función. (Es 'M-x whitespace-mode' btw.) – bug

5

Todos los posibles ajustes para hacer que parecen ser summarized here (blank-mode) y aquí and here (ShowWhiteSpace)

también:

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

roto-guión? - nunca use pestañas en su código - el espacio en disco es barato en estos días.

Ponga (setq-default indent-tabs-mode nil) en su archivo .emacs. Acostúmbrate a escribir C-x h M-x untabify para desestabilizar todo el búfer. Para buscar pestañas, escriba C-s C-i. Si tiene caracteres de control oscuros en sus búferes, puede verlos con M-x hexl-mode.

También C-x h M-x indent-region sangrará todo el búfer. Algunos modos, como vhdl-mode, tienen un comando de embellecimiento de región.

+8

Diferentes desarrolladores en mi equipo tienen diferentes preferencias para tabwidth. Establecer todo en espacios confunde al resto del equipo. Gracias por jugar, sin embargo. – warfangle

+0

Sólo para que conste: debería ser 'C-h f untabify' en lugar de ' C-x h M-x untabify' – To1ne

+2

Emacs es bueno para otros tipos de archivos (como, por ejemplo, archivos de datos delimitados por tabuladores), no sólo código! Limpio, ¿eh? – Anne

Cuestiones relacionadas