[emacs] emacs设置python code的indent

时间:2022-09-04 13:56:08

装python-mode的包

https://gitlab.com/python-mode-devs/python-mode/tree/master

python-mode

emacswiki文档

emacswiki文档里的配置方法是这样提供的

https://www.emacswiki.org/emacs/IndentingPython

    (add-hook 'python-mode-hook
(lambda ()
(setq-default indent-tabs-mode t)
(setq-default tab-width 4)
(setq-default py-indent-tabs-mode t)
(add-to-list 'write-file-functions 'delete-trailing-whitespace)))

我的配置

通过实践,并阅读了python-mode.el的源码,发现上面的配置并不生效。

应如下配置:

(add-hook 'python-mode-hook

(lambda ()

(setq-default py-indent-offset 8)

(setq-default py-indent-tabs-mode t)))

可能不好使。。。。。 TOBE continue。。。


update @ 2019-01-23

上面的配置,果然不好使。然后我就自己研究了一下。

首先删除了melpa中的python-mode包。因为emacs自带一个python mode在python.el中。

通过查询help信息可以查到

C^x + h + v + python-mode

通过阅读源码,分析出如下的配置信息:

(add-hook 'python-mode-hook
(lambda ()
(setq indent-tabs-mode t)
(whitespace-mode t)
(display-line-numbers-mode t)
(fci-mode t)))

通过测试,可以生效。

另外,后三行是我自有的配置,与本文主题无关。


结案。