牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

『python.el』のpython-modeが便利になるかもな設定を3つほど

修正:emacswikiのElectricPairがうまく動かないので、以前emacswikiPython-Modeのページに載っていたコードに変更


Emacsで特に何の設定をする事もなく、デフォルトで使えるらしい『python.el』の方のpython-mode。
少々設定を加えると、なかなかいい感じ。

(MacOSX10.5, python2.5, Carbon Emacs 2008-11-01版)

できるようにすることなど

  1. 改行でインデント
  2. 括弧を閉じる
    • metaキー+『"』とか『(』とか押すと、『""』とか『()』とか
    • 『'』『[』『{』なども同様に
  3. Pythonの対話モードで、タブ押すと補完

.emacs.elに設定を書く

関数electric-pairはEmacsWiki: Electric Pair』よりEmacsWiki: Python Programming In Emacs』に以前、載っていたコードをそのままコピペ。

;;http://www.emacswiki.org/emacs/ElectricPair
(defun electric-pair ()
  "If at end of line, insert character pair without surrounding spaces.
    Otherwise, just insert the typed character."
  (interactive)
  (if (eolp)
      (let (parens-require-spaces) (insert-pair))
    (self-insert-command 1)))
;; Complete the closing pair
(defun electric-pair ()
  "Insert character pair without sournding spaces"
  (interactive)
  (let (parens-require-spaces)
    (insert-pair)))

;; python.el
(add-hook
 'python-mode-hook
 '(lambda ()
    (define-key python-mode-map "\C-m" 'newline-and-indent)
    (define-key python-mode-map "\M-\"" 'electric-pair)
    (define-key python-mode-map "\M-\'" 'electric-pair)
    (define-key python-mode-map "\M-[" 'electric-pair)
    (define-key python-mode-map "\M-{" 'electric-pair)
    (define-key python-mode-map "\M-(" 'electric-pair)
    (define-key inferior-python-mode-map "\t" 'python-complete-symbol)
    ))

感想

  • python.elは設定が簡単で素敵。
  • Emacsあれば、すぐにコード書ける環境を作れるし。
    • 新しくPC新調した時とか、Pythonなどアップデートした時とか。
    • 一応、Complete symbolとかもある(M-tab)
  • python.el』と『ipython.el』は名前似てるけど全く違うもの。無関係っちゃ無関係。