electric-spacing 20161209.1157(in MELPA)
Insert operators with surrounding spaces smartly

概要

コーディングをしていて、「=」の間にスペースを入れるとき
手動でスペースを入力するのはちょっと面倒です。

自動で入力してもいいんじゃないでしょうか?

そこで、 electric-spacing.el の登場です。

M-x electric-spacing-mode というマイナーモードを
有効にすると使えます。

「=」を入力すると前後にスペースが入りますが、
「==」を入力したときには「==」の前後にスペースが入るように
賢い挙動をしてくれます。

20150324042754.png
Fig1: スペースを入力しないでも自動で入れてくれる!

グローバルマイナーモードではないので
以下のように使う言語ごとにフックを設定してください。

(add-hook 'python-mode-hook #'electric-spacing-mode)

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてelectric-spacingを使う方は
以下のコマンドを実行します。

M-x package-install electric-spacing

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name electric-spacing

類似品たち

日本ではIMAKADOさんのsmartchr.el が有名ですが、
実はこっちの方が先輩だったりします。

smartchr.elは2009年登場ですが、
こっちはsmart-operator.elという名前で2006年に登場しました。

やはり考えていることは同じですよね。

smartchr.elの後継としてuk-arさんのkey-combo.el もあります。

対応メジャーモード

electric-spacing.elは対応メジャーモードが
関数内にハードコーディングされています。

コードを見たところ、以下のメジャーモードに特別に対応しています。

  • cc-mode
    • c-mode
    • java-mode
    • c++-mode
  • emacs-lisp-mode
  • lisp-mode
  • lisp-interaction-mode
  • scheme-mode
  • sgml-mode
  • haskell-mode
  • python-mode
  • ruby-mode
  • js-mode
  • js2-mode
  • perl-mode
  • cperl-mode

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。