我已經安裝在Emacs「絕地」模式,但我發現,它會自動插入每次我創建一個新的行,然後鍵入Ë升小號Ë時間的話elif
:輸入因爲冒號字符顯然揭開了Jedi的完成邏輯,elif
被建議作爲頂級建議,而我的按下輸入顯然選擇了它。因此,我總是每次嘗試輸入else
條款時,都必須在繼續之前退格到無關的elif
。爲什麼Emacs Jedi在輸入「else:」後總是插入「elif」?
這個問題對我來說是獨一無二的嗎?我啓動絕地通過密切關注文檔:
(add-hook 'python-mode-hook 'jedi:setup) (setq jedi:complete-on-dot t) (setq jedi:get-in-function-call-delay 200) (setq jedi:tooltip-method nil)
你可以找到我的整個.emacs.d/init.el
版本控制下在GitHub上:
https://github.com/brandon-rhodes/dot-emacs
絕地及其相關工具的我的系統上當前的版本是:
(:emacs-version "24.3.1" :jedi-version "0.2.0alpha2") ((:version "3.4.0 |Continuum Analytics, Inc.| (default, Mar 17 2014, 16:13:08) \n[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)]" :file nil :name "sys") (:version "0.8.0-final0" :file "/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/jedi/__init__.py" :name "jedi") (:version "0.0.5" :file "/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/epc/__init__.py" :name "epc") (:version "0.0.3" :file "/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/sexpdata.py" :name "sexpdata"))
我注意到:
角色綁定到Emacs的功能python-indent-electric-colon
但我不知道如何阻止我的這個功能是否在某種程度上引發了Jedi的完成邏輯而沒有意義。
而且,如果我繼續打字一旦'其他:elif'結構是我的屏幕上,它不會追溯固定或更正或刪除。我的Python中間只有'else:elif'這一行。 –
Emacs是否有更新版本的Emacs可用於您的平臺?我的Emacs附帶的'python.el'似乎不包含'python-indent-electric-colon'函數。我可以在[python.el' GitHub倉庫](https://github.com/fgallina/python.el/blob/master/python.el#L1056)中找到它,但是最近的修訂版本已經有一年了。 GNU Emacs源碼[似乎不再包含該功能](http://bzr.savannah.gnu.org/lh/emacs/trunk/annotate/head:/lisp/progmodes/python.el#L1078)。 (我也無法在Emacs上重現您的問題。) – Chris
函數'python-indent-electric-colon'在Ubuntu 14.04上定義在文件'/usr/share/emacs/24.3/lisp/progmodes/ python.el.gz'屬於包'emacs24-el',它似乎是Emacs現在用於編輯Python的默認模式。 –