我正在与一群使用vim的Python程序员合作,他们使用TAB进行缩进。我使用带有python-mode的Emacs,它将tab键转换为4个空格(就像它应该,但没关系)。由于我不想造成麻烦,我想在我的.emacs文件(或其他)中添加一些内容,以使用真正的TABS进行缩进,而不是将它们转换为空格。怎么样?
如果在其他地方得到回答,我很抱歉:我没找到。
答案 0 :(得分:10)
您可以使用~/.emacs
在python-mode-hook
中定义特定于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)))
答案 1 :(得分:1)
可能需要在python模式下执行此操作:
(setq indent-tabs-mode t)
答案 2 :(得分:0)
正如帖子的评论者所说的那样,使用标签进行缩进是一个坏主意,使用非标准标签宽度会更糟。尽管如此,如果你想合作,有时你别无选择。
根据您的同事配置vim的确切方式,您可能需要两个启用indent-tabs-mode
并将tab-width
设置为4。
执行此操作的便捷方法是使用file local variables,这不会弄乱您的其他工作。在每个违规文件的末尾,输入:
# Local Variables:
# indent-tabs-mode: 1
# tab-width: 4
# End:
(你必须告诉Emacs indent-tabs-mode
是一个安全的局部变量。)