如何使Emacs Python模式为缩进生成制表符?

2024-04-27 09:04:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我和一些使用vim的Python程序员一起工作,他们使用制表符缩进Python。我将Emacs与python模式结合使用,后者将tab键转换为4个空格(应该是这样,但没关系)。因为我不想惹麻烦,所以我想在.emacs文件(或其他文件)中添加一些内容,以便使用真正的制表符缩进,而不是将它们转换为空格。怎样?

很抱歉,如果这是其他地方的答案:我没有找到它。


Tags: 文件答案内容地方模式vimtab制表符
3条回答

可以使用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。

一个方便的方法是使用file local variables,这样做不会扰乱您的其他工作。在每个违规文件的末尾,写下:

# Local Variables:
# indent-tabs-mode: 1
# tab-width: 4
# End:

(您必须告诉Emacsindent-tabs-mode是一个安全的局部变量。)

相关问题 更多 >