[emacs] emacs设置python code的indent

装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)))

通过测试,可以生效。
另外,后三行是我自有的配置,与本文主题无关。


结案。

原文地址:https://www.cnblogs.com/hugetong/p/10300502.html