如何使Emacs显示空白?


67

如何使Emacs显示空白(如空格,制表符,行跳转等)。许多其他编辑器(例如Kate和Eclipse)都具有此功能,并且我发现由于空格和制表符(尤其是Python)的混合而使代码缩进时非常有用。

Answers:


68

WhiteSpace模式是Emacs的次要模式,用于可视化当前缓冲区中的所有空白字符。可以用激活它M-x whitespace-mode

这是直接从Emacs Wiki截取的WhiteSpace的屏幕截图,

运作中的空白模式

注意:WhiteSpaceMode现在已替换BlankMode


22
感谢您提供的屏幕截图和链接,但您实际上忘记了告诉我们如何打开该功能。(M-x whitespace-mode顺便说一句)
错误

5

缩进?-切勿在代码中使用制表符-这些天磁盘空间很便宜。

放入(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)具有美化区域命令。


10
我团队中的不同开发人员对Tabwidth的偏好不同。将所有内容都放置在空格上会破坏团队的其他成员。不过,感谢您的参与。
warfangle

仅作记录:应该C-h f untabify代替C-x h M-x untabify
To1ne 2011年

2
Emacs适用于其他类型的文件(例如,制表符分隔的数据文件),而不仅仅是代码!整洁吧?
安妮(Anne)

3
@ To1ne C-h f untabify:关于的帮助untabifyC-x h M-x untabify:标记缓冲区,然后运行untabify
Jerome Baum 2012年

5

似乎在此处(空白模式)以及此处和此处(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)
  )
)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.