2008-11-16 2 views
64

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

ответ

62

Пробел режим является второстепенный режим Emacs для визуализации всех пробельных символов в текущем буфере.

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

Вот снимок экрана пробельных в действии берется непосредственно из вики Emacs,

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

Примечание: Пробел теперь заменен BlankMode

+22

Спасибо за скриншот и ссылку, но вы забыли на самом деле рассказать нам, как включить эту функцию. (Это `M-x whitespace-mode` btw.) – bug 2013-08-15 15:54:03

5

все возможные настройки, чтобы сделать это, кажется, summarized here (blank-mode) и здесь and here (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) 
) 
) 
4

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

Положите (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, имеют команду beautify region.

+8

У разных разработчиков моей команды разные настройки для табуляции. Устанавливая все в пространство, шумит остальная часть команды. Спасибо за игру. – warfangle 2010-08-27 16:03:11

Смежные вопросы