带有硬标签的Spacemacs中的Python缩进已关闭

时间:2016-06-15 20:32:47

标签: python emacs spacemacs

让我先说一下我是一个相对较新的emacs / spacemacs转换自vim,所以我的知识仍然非常基础。

我在python图层中设置了spacemacs,并在dotspacemacs-additional-packages中列出了额外的dtrt-indent包。并设置

(dtrt-indent-mode t)
在dotspacemacs / user-config中。我需要dtrt-indent,因为我正在处理一些项目(在python和lua中),我不是那个设置缩进规则的人。

此配置适用于具有不同长度的软标签的python文件。此配置也适用于具有硬标签的lua文件。

当我打开一个用硬标签缩进的python文件时,某些东西似乎搞砸了,似乎认为缩进是两个硬标签。意思是,如果我有这样的代码(假装4个空格是制表符):

def func():|  <--- Cursor
    print 'line'

然后按回车键,我得到:

def func():
        |  <--- Cursor
    print 'line'

状态行打印dtrt-indent的消息:

Note: indent-tabs-mode adjusted to t

注意:如上所述,我对此很新,而且我的spacemacs配置相当稀疏。我的user-config中没有其他内容,我没有自定义图层,除了dtrt-indent之外,我甚至没有任何其他软件包。

编辑:

python-indent-offset设置为8

indent-tabs-mode设置为t

tab-width设置为4

1 个答案:

答案 0 :(得分:5)

尝试M-x whitespace-mode并重复此实验。你看到了什么?你用空格或标签缩进了吗?

我猜你会看到这样的事情:

def·func():
········
»   print·'line'

这意味着您将python-indent-offset设置为8,indent-tabs-mode设置为nil(也称为空格缩进),tab-width设置为4。

如果不是这样,那些变量(C-h v python-indent-offset等)的值是什么?

如果 ,则可以通过运行

解决问题
(setq-default python-indent-offset 4)