2013/04/10

Python でもスクラッチバッファで対話したい

果てしなく車輪の再発明っぽいのですが、Emacs の Python の対話環境をでっちあげてみました。

リージョンを選択して M-x eval-region-python すると、評価結果をカーソル行の下に挿入します。雰囲気としては Lisp Interaction モード で C-j したときのような感じです。

(defun eval-region-python (beg end)
  (interactive "r")
  (insert (with-output-to-string
            (shell-command-on-region beg end "python" standard-output))
      "\n"))

ちなみに、結果をスクラッチバッファに出さずに、slime っぽく別のウィンドウに表示する場合は下記のように。

(defun eval-region-python (beg end)
  (interactive "r")
  (let ((buf "*Py Output*")
        (curwin (selected-window)))
    (shell-command-on-region beg end "python" buf)
    (pop-to-buffer buf)
    (select-window curwin)))

こういうのをスクラッチバッファのメジャーモードを検知してすべての言語に対応してやれば、最強のスクラッチバッファになるかも…。

参考にさせてもらったページ

Related Posts Plugin for WordPress, Blogger...

0 コメント :

コメントを投稿