python模式下的Emacs选项卡缩进是使用制表符而不是4空格。
我的emacs init.el文件包含:
(setq-default indent-tabs-mode t)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)
我试过了:
(setq-default indent-tabs-mode nil)
但它没有任何区别。
在emacs中使用white-space
模式,我看到该标签不会缩进4个白色空格,而untabify
会将标签修复为4个白色空格。如何使TAB作为四个白色空间工作?
更新 通过将init.el配置更改为:
来修复(add-hook 'python-mode-hook
(lambda ()
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq-default python-indent 4)))
答案 0 :(得分:2)
如果要插入TAB,则indent-tabs-mode必须为“t”。改变挂钩显示。 写
(setq indent-tabs-mode t)
看起来python.el有一个bug,当它与模式一起设置为nil时。当钩子在模式init之后运行时,它应该能够纠正它。
如果没有,请尝试python-mode.el,它允许选择。 你也可以在每个缓冲区中设置indent-tabs-mode,它由python.el建立缓冲区本地。
答案 1 :(得分:2)
虽然已经很晚了,但以下的钩子对我有用。 只有空格
int main() {
constexpr std::uint16_t msg{0xCDEF};
constexpr auto fid = function_id(CID_SYS, msg);
std::cout << fid << '\n';
}
仅限标签
(add-hook 'python-mode-hook
(lambda ()
(setq indent-tabs-mode nil)
(setq python-indent 4)
(setq tab-width 4))
(untabify (point-min) (point-max)))