emacs 修复 python 的制表符缩进
Posted
技术标签:
【中文标题】emacs 修复 python 的制表符缩进【英文标题】:emacs fix tab indentation for python 【发布时间】:2014-03-07 01:04:55 【问题描述】: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)))
【问题讨论】:
【参考方案1】:如果要插入 TAB,indent-tabs-mode 必须为 `t'。在所示的钩子中更改它。 写
(setq indent-tabs-mode t)
似乎 python.el 有一个错误,当它与模式一起设置为 nil 时。由于钩子在模式初始化之后运行,它应该能够纠正这个问题。
如果没有,请尝试允许选择的 python-mode.el。 您还可以在每个缓冲区中显式设置 indent-tabs-mode,它由 python.el 设置为缓冲区本地。
【讨论】:
【参考方案2】:虽然已经很晚了,但跟随钩子对我有用。 只有空格
(add-hook 'python-mode-hook
(lambda ()
(setq indent-tabs-mode nil)
(setq python-indent 4)
(setq tab-width 4))
(untabify (point-min) (point-max)))
只有标签
(add-hook 'python-mode-hook
(lambda ()
(setq indent-tabs-mode t)
(setq python-indent 4)
(setq tab-width 4))
(tabify (point-min) (point-max)))
【讨论】:
以上是关于emacs 修复 python 的制表符缩进的主要内容,如果未能解决你的问题,请参考以下文章