3

Emacs でターミナル エミュレータを開いたとしM-x ansi-termます。これにより、選択したシェルを使用して Emacs でバッファーが開きます。次にipython、このシェルから実行するとします。ipythonEmacs で Python コードを使用して、別のバッファーからこのセッションにコードを送信できますか? もしそうなら、どのように?

4

3 に答える 3

5

この目的のために、マイナー モードを用意しています (ただし、IPython 固有ではなく、主にシェル スクリプトに使用します): isend-mode

使用方法は次のとおりです。

  1. ansi-termバッファを開きます:

    M-xansi-termRET/usr/bin/ipythonRET

  2. 実行するコードを含むバッファーを開き、インタープリター バッファーに関連付けます。

    M-xisend-associateRET*ansi-term*RET

  3. C-RETPython バッファーをヒットして、現在の行をansi-termバッファー内のインタープリターに送信します。

于 2012-11-19T08:08:51.567 に答える
3
(defun send-buffer-to-ipython ()
  "Send current buffer to the running ipython process."
  (interactive)
  (let* ((ipython-buffer "*ansi-term*") ; the buffer name of your running terminal
         (proc (get-buffer-process ipython-buffer)))
    (unless proc
      (error "no process found"))
    (save-buffer)
    (process-send-string proc
                         (format "execfile(\"%s\")\n" (buffer-file-name)))
    (pop-to-buffer ipython-buffer)      ; show ipython and select it
    ;; (display-buffer ipython-buffer)  ; show ipython but don't select it
    ))

send-buffer-to-ipython次に、コマンドを好きなキーにバインドします。私はそれをバインドしますC-c C-c

(define-key python-mode-map [?\C-c ?\C-c] 'send-buffer-to-ipython)
于 2012-11-18T23:31:57.707 に答える
2

python-mode.elを使用

Mxcustomize-変数RETpy-shell-nameRET ansi-term

Mx ansi-term RET ipython RET

CcPythonからのCc-IPythonシェルで実行されるバッファ

警告:デフォルトのpy-shell-nameの前にシバンがあります

https://launchpad.net/python-mode/trunk/6.0.12/+download/python-mode.el-6.0.12.tar.gz

于 2012-11-19T09:59:21.183 に答える