如何让 Emacs 显示空格?

问题描述 投票:0回答:3

如何让 Emacs 显示空白(如空格、制表符、跳行等)。许多其他编辑器(例如 Kate 和 Eclipse)都具有此功能,我发现它非常有用,可以查看代码何时由于空格和制表符的混合而被缩进破坏(尤其是 Python)。

emacs whitespace
3个回答
73
投票

WhiteSpace 模式是 Emacs 的一种次要模式,用于可视化当前缓冲区中的所有空白字符。可以用

M-x whitespace-mode
激活它。

这是直接从 Emacs wiki 中获取的 WhiteSpaceMode 实际操作的屏幕截图,

whitespace mode in action


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

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

© www.soinside.com 2019 - 2024. All rights reserved.