2012-01-23 190 views
16

我在我的FreeBSD 8.2盒子上安装了Emacs。一切工作正常,但我不能使用制表符。当我用emacs编辑文件并点击标签时,什么也没有发生。Emacs标签不工作

这可能是什么原因造成的?

+0

C-h k TAB告诉你什么? – Bahbar

+0

@Bahbar你的意思是Ctrl - h - k?我不明白,对不起,我是emacs的新手。 –

+1

Ctrl-h是获得帮助的关键组合。那么你输入k要求键盘快捷键。按Tab键然后询问emacs“什么是绑定到TAB”。但是不要紧。如果您是emacs的新手,那么您可能会看到的是自动缩进。在已经缩进的行上按TAB确实不会有任何作用。 – Bahbar

回答

28

如果您是Emacs的新手,您可能会希望按TAB来插入文字\T。由于各种原因,这不是大多数Emacs模式的工作方式。大多数编辑模式会根据需要自动缩进您的代码(<tab>绑定到indent-for-tab-command而不是self-insert)。如果你在TAB上的行已经在正确的缩进级别,那么看起来没有任何事情发生。

像这样的自动缩进比手动缩进更容易且更一致,但在确定每行开始时究竟会出现多少空白(并且它不会给您足够的灵活性当你想要时也会导致一些问题,例如,将一些字段分开)。您可以使用C-M-\(即Ctrl + Alt + \)自动缩进区域。

如果您绝对肯定必须在您的代码的某处插入文字\T,您可以使用C-q TAB(按下并释放Ctrl + q,然后按TAB键)执行此操作。通常,这是为了对齐其他编辑器中的列;如果这就是你正在做的事情,那么使用align-regexp而不是标签文字可能是一个更好的主意。

+1

如何在emacs中关闭自动缩进? – user590849

+1

@ user590849 - 你可能不应该;它需要一些习惯,但之后要容易得多。如果由于某种原因使用了自动缩进失效的模式,则可以在该模式下将''重新绑定到'(插入“\ t”)'。 – Inaimathi

0

在基本和文本模式下,我使用C-<TAB>。我不知道这个模式适用于哪些模式,但除少数例外情况外,纯文本是唯一一次我需要一个实际的\t角色。