2つのPythonモード


10

私は適切なPythonモードを使用するようにEmacsを設定しようとしています。このために、いくつかのチュートリアルを読みました。最も重要なのはこれです。チュートリアルではpython-modeパッケージを使用します。ただし、パッケージマネージャー(M-x package-install RET python-mode RET)を使用してインストールすると、そのパッケージで使用できるショートカットを使用できません。

のようないくつかのショートカットをテストするためにPythonファイルを開いてC-c |、選択した式を評価する必要があります。しかし、驚いたことにこれらは機能しなかったので、このトピックに関する他のチュートリアルを見つけることにしました。ただし、私のモードラインではが表示されるPythonため、python-mode有効になっているものがあります。

emacs wikiで、init.elファイルに追加する次のスニペットを見つけました。

 (autoload 'python-mode "python-mode" "Python Mode." t)
 (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
 (add-to-list 'interpreter-mode-alist '("python" . python-mode))

これを追加すると、python-mode実際に機能し、前述のショートカットも機能します。

私はこれがM-x python-modePythonファイルバッファで手動で実行する以上のことを正しく理解していません。

python-mode.emacsフォルダー内のすべてのトレースを削除してpythonファイルを開いたところ、まだpython-mode。だから私の推測は2つあると思いpython-modeますか?

python-modehttps://launchpad.net/python-modeから欲しいと思います。パッケージリポジトリに存在するようですが、他のPythonモードを削除する方法がわかりません。

誰かが詳しく説明してもらえますか?


1
Ipythonを使用する場合、einは優れたパッケージです。EmacsのIpythonノートブックに相当するものを提供します。ここにデモがあります。元のリポジトリの古いデモもあり、現在はメンテナンスされていません。
火曜

それはかなり単純な質問のための完全なたくさんのテキストです。;-)少し切り詰めるといいでしょう。
マラバルバ2015年

同意する。他のSEサイトが私を考えているので、私は徹底していた。少し早めにトリミングします。
Christophe De Troyer

回答:


10

そうですね、2つのpythonモードがあります。emacsに同梱されているものpython.elと、もう1つpython-mode.elは実際にこのものです。https//launchpad.net/python-mode

あなたのチュートリアルは後者のものを参照しています。

あなたのpython-modeセットアップスニペットは、次のことを行います。

;; by default, the function 'python-mode is associated with
;; the package python.el. The following changes that to python-mode.el:
(autoload 'python-mode "python-mode" "Python Mode." t)

;; open py files with python-mode
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

;; sets python interpreter mode to be python-mode
(add-to-list 'interpreter-mode-alist '("python" . python-mode))

python.elを削除するのですか、それとも組み合わせる必要がありますか?または、後者のpythonモードに特定の名前はありますか?init.el持ち運びできるようにしたいので、削除することpython.elはできません。
Christophe De Troyer

python-mode.elをインストールして、投稿したスニペットでセットアップするだけです。(またはREADMEを読んでください)
Adobe

このコマンドとsuperuser.com/questions/108233/…を組み合わせて、コマンドの機能を理解しています。詳しく説明していただきありがとうございます。
Christophe De Troyer、2015年

7

python-mode.elのメンテナーとして、@ Adob​​eによる回答に加えて、python-mode.elはpython.elからコマンドをアンロードしません-両方が利用可能です。python-mode-mapの名前-これは両方で使用され、多くのものを壊さない限り変更できません-のため、キーバインディングとメニューは最後にロードされたものから配信されます。

C-c |py-execute-regionここで呼び出し、うまく動作します。おそらくpython.elが後でロードされ、バインディングがなくなりました。Mxを介してコマンドを呼び出すことは、オプションの場合もあります。問題が発生した場合は、https://bugs.launchpad.net/python-modeでバグレポートを検討してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.