强制 emacs 使用制表符而不是多个空格

Posted

技术标签:

【中文标题】强制 emacs 使用制表符而不是多个空格【英文标题】:Forcing emacs to use the tab character instead of a number of spaces 【发布时间】:2013-09-29 00:45:34 【问题描述】:

我最近在使用croncrontab 时遇到了一些问题,因为我使用的文本编辑器emacs 在我按下制表键时会插入几个空格而不是制表符。此问题在所有主要模式中都存在,无论为每种模式设置的选项卡宽度如何。

如何强制emacs使用制表符而不是由多个空格组成的制表符?

【问题讨论】:

JFTR:在 crontabs 中,TAB 和空格都被同等对待(作为空白),因此您的根本问题不在于 Emacs 或 cron。如果您需要在命令行中保留 TAB,通常谨慎地将其转义为 "$'\t'"(在 bash 中)。 【参考方案1】:

设置变量indent-tabs-mode。您可以通过使用M-x customize-variable、即时使用M-x set-variable 或在Elisp 中使用setq 函数自定义变量来做到这一点。

【讨论】:

当我内联插入制表符时(即在 cron 中),这在技术上回答了这个问题,但是当使用制表符实际缩进代码时,这个问题仍然存在。我在init.el 中手动设置了变量。【参考方案2】:

如果要插入 TAB 字符,请使用 C-q TAB。 TAB 键用于不同的目的(主要是根据各种规则缩进/对齐文本/代码,但它也用于各种其他目的,例如执行完成、从一个字段跳到另一个字段等...)。

【讨论】:

以上是关于强制 emacs 使用制表符而不是多个空格的主要内容,如果未能解决你的问题,请参考以下文章

制表符空格而不是多个不间断空格(“nbsp”)?

emacs 修复 python 的制表符缩进

Emacs 全局配置选项卡

防止emacs混合制表符和空格?

如何将 Notepad++ 配置为使用空格而不是制表符?

在 Emacs 中以文本模式设置 4 空格缩进