我与一群使用 vim 的 Python 程序员共事,他们使用制表符来缩进 Python 代码。我使用带有 python-mode 的 Emacs,它会将 Tab 键翻译为 4 个空格(虽然应该这样,但不要在意)。由于我不想引起麻烦,所以我想在我的 .emacs 文件中添加一些内容(或其他文件)以便使用真正的 TABS 进行缩进,而不是将它们转换为空格。如何做到这一点?
如果此问题已经在其他地方得到解答,请见谅:我没有找到。
python-mode-hook
在您的~/.emacs
中定义Python特定的设置。为了使用制表符进行缩进,您可以使用以下代码:(add-hook 'python-mode-hook
(lambda () (setq indent-tabs-mode t)))
python.el
默认只缩进4个字符,因此当缩进为8的倍数时,上述代码将使用制表符,其他缩进将使用制表符后跟空格。python-indent
设置为8。 然后,您可以将tab-width
设置为任何希望查看已显示选项卡的宽度。(add-hook 'python-mode-hook
(lambda ()
(setq indent-tabs-mode t)
(setq python-indent 8)
(setq tab-width 4)))
可能需要在Python模式下执行此操作:
(setq indent-tabs-mode t)
正如评论者在帖子中正确指出的那样,使用制表符进行缩进是一个坏主意,而使用非标准制表符宽度更糟糕。尽管如此,如果你想要协作,有时候你别无选择。
根据你的同事如何配置vim,你可能需要同时打开indent-tabs-mode
并将tab-width
设置为4。
一种方便的方法是使用文件局部变量,这不会破坏你的其他工作。在每个有问题的文件末尾,加上这个:
# Local Variables:
# indent-tabs-mode: 1
# tab-width: 4
# End:
(您需要告诉Emacs,indent-tabs-mode
是一个安全的本地变量。)