首先,让我说我是从vim转换而来的emacs / spacemacs相对较新,因此我的知识仍然很基础。
我在python层设置了spacemacs,并在dotspacemacs-additional-packages中列出了dtrt-indent的其他软件包。和设置
(dtrt-indent-mode t)
Run Code Online (Sandbox Code Playgroud)
在dotspacemacs / user-config中。我需要dtrt-indent,因为我正在处理一些项目(在python和lua中),但我不是设置缩进规则的人。
此配置适用于带有不同长度软标签的python文件。此配置也适用于具有硬标签的lua文件。
当我打开带有硬标签的缩进的python文件时,似乎有些混乱,似乎认为缩进是两个硬标签。意思是,如果我有这样的代码(假设4个空格是制表符):
def func():| <--- Cursor
print 'line'
Run Code Online (Sandbox Code Playgroud)
然后按Enter,我得到:
def func():
| <--- Cursor
print 'line'
Run Code Online (Sandbox Code Playgroud)
状态行显示dtrt-indent的消息,内容为:
Note: indent-tabs-mode adjusted to t
Run Code Online (Sandbox Code Playgroud)
注意:如前所述,我在这方面还很陌生,而我的spacemacs配置非常稀疏。我的用户配置中没有其他内容,没有自定义层,除了dtrt-indent之外,我什至没有任何其他软件包。
编辑:
python-indent-offset设置为8
indent-tabs-mode设置为t
制表符宽度设置为4