2

Emacs に「Jedi」モードをインストールしましたがelif、新しい行を作成して入力するたびに単語が自動挿入されることがわかりましe l s e : Enterた。これは、コロン文字がジェダイの補完ロジックを開始elifし、最上位の提案として提案されているためEnterです。それを選択します。そのため、節を入力しようとするたびに、続行する前elseに無関係な部分をバックスペースする必要があります。elif

この問題は私に固有のものですか? ドキュメントに厳密に従って、Jediをアクティブにします。

(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.elGitHub のバージョン管理下にある私の全体を見つけることができます。

https://github.com/brandon-rhodes/dot-emacs

私のシステム上の Jedi とそれに関連するツールの現在のバージョンは次のとおりです。

(: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")
 (:バージョン「0.8.0-final0」:ファイル「/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/jedi/__init__.py」:名前「ジェダイ」)
 (:バージョン「0.0.5」:ファイル「/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/epc/__init__.py」:名前「epc」)
 (:バージョン "0.0.3" :ファイル "/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/sexpdata.py" :name "sexpdata"))

:キャラクターがEmacs関数にバインドされていることに注意してください。python-indent-electric-colonしかし、その関数が何らかの形でジェダイの補完ロジックを意図せずに開始しているかどうかを判断する方法がわかりません.

4

1 に答える 1

1

これは python-mode: 値が true のバグだと思いtab-always-indentますが、動作は以前と同じです。

https://www.gnu.org/software/emacs/manual/html_node/emacs/Indent-Convenience.html

私の解決策:

(add-hook 'python-mode-hook
    (lambda ()
        (setq-local electric-indent-chars (remq ?: electric-indent-chars))
    )
)
于 2015-06-18T14:05:06.187 に答える