Python Spacemacs 中带硬制表符的缩进已关闭
Python indentation in Spacemacs with hard tabs is off
先声明一下,我是一个比较新的 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 配置也很稀疏。我的用户配置中没有其他任何东西,我没有自定义层,除了 dtrt-indent 之外我什至没有任何其他包。
编辑:
python-indent-offset 设置为 8
indent-tabs-mode 设置为 t
制表符宽度设置为 4
尝试 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)
先声明一下,我是一个比较新的 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 配置也很稀疏。我的用户配置中没有其他任何东西,我没有自定义层,除了 dtrt-indent 之外我什至没有任何其他包。
编辑:
python-indent-offset 设置为 8
indent-tabs-mode 设置为 t
制表符宽度设置为 4
尝试 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)