私はEmacsでこのコードをpython-mode
有効にして持っています:
def func(a):
if a:
return True
return False
カーソルを移動するreturn False
とdef func(
、コードが自動的にインデントされ、コードが壊れます:
def func(a):
if a:
return True
return False #Oops!
electric-indent-mode
これは、マイナー グローバル モードが原因であることがわかりました。ただし、オフにしようとしましたが、問題は残ります。
私が使用するelispコードは次のとおりです。
(defun disable-electric-indent ()
(set (make-local-variable 'electric-indent-functions)
(list (lambda (arg) 'no-indent))))
そして、これが私のpython-mode-hook
見た目です:
(add-hook 'python-mode-hook
(lambda ()
(flyspell-prog-mode)
(auto-complete-mode)
(nlinum-mode)
(toggle-truncate-lines t)
(setq autopair-handle-action-fns
(list 'autopair-default-handle-action 'autopair-python-triple-quote-action))
(centered-cursor-mode)
(auto-indent-mode)
(autopair-mode)
(column-marker-1 80)
(flycheck-mode)
(setq ac-auto-start 2)
(disable-electric-indent) ;; esto deberia hacer que emacs deje de romper las pelotas con el codigo en python
(jedi:setup)))
この動作をオフにauto-indent-mode
すると停止します (ただし、自動インデントは得られません、glol)。
私のemacsバージョン:GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.8.1) of 2013-04-29 on eric
EDIT:メルパによるとpython
、そのバージョンでパッケージ(Emacs用の組み込みのPythonのフライングサーカスサポートを使用しています)を使用しています。0.24.2
おそらく、それを削除してpython-mode
、バージョン 6.0.10 のパッケージを使用する必要がありますか?