2

ipython.elemacs23でセットアップしようとしています。私はそれを正常にインストールしました(emacsにプリインストールされている代替品を入れた後)python-mode.el。などを介して実行することもできます。load-pathpython.elM-x py-shell

インターフェースの設定がかなりお粗末なようで、やり方が間違っているのか、それとも思いどおりに動作させるためにカスタマイズする必要があるのか​​ 疑問に思っていました.

要するに、私が望むワークフローは次のとおりです。

  • 1 つ以上のバッファーで、Python コードを編集します
  • そのバッファーにヒットC-c C-cしたら、開いている IPython シェル バッファー (存在する場合) でそのバッファーの Python コードを実行するか、別のバッファーを開いて実行します。

しかし、今起こっていることは次のとおりです。

  • 一方のバッファーに IPython シェルがあり、もう一方のバッファーに Python ファイルがある場合C-c C-c、Python ファイル バッファーをヒットすると、ファイル バッファーが IPython バッファーに切り替わり (つまり、2 つの複製された iPython バッファーがあることを意味します)、ファイルが実行されます。
  • これは面倒です。

私は elisp にはかなり慣れていませんが、回避策として、既存のファイル バッファーに注意して を実行し、元のファイル バッファーに戻すdefadviceようアドバイスできることを理解しています。python-execute-bufferpython-execute-buffer

これはかなりばかげているようです。これを達成するためのより良い方法についての提案をいただければ幸いです。

問題がある場合: 私は OS X 10.6.8 を使用しており、IPython 0.10.1 で Emacs 24.0.50 を実行しています。

前もって感謝します!

4

1 に答える 1

0

単にインストールpython-mode.elanything-ipython.elて置くだけであることがわかります

(require 'python-mode)
(require 'ipython)
(require 'anything-ipython)
(add-hook 'python-mode-hook #'(lambda ()
                                (define-key py-mode-map (kbd "C-<tab>") 'anything-ipython-complete)))
(add-hook 'ipython-shell-hook #'(lambda ()
                                  (define-key py-mode-map (kbd "C-<tab>")
                        'anything-ipython-complete)))

私の作成では、バッファを開くだけでなく、シェルでコードを実行する前に(そのように)実行された場合.emacs、すべてが希望どおりに機能します。 py-shellpy-execute-bufferC-c C-c*Python Output*

于 2011-07-08T20:07:08.880 に答える