- electric-spacing 20161209.1157(in MELPA)
- Insert operators with surrounding spaces smartly
概要
コーディングをしていて、「=」の間にスペースを入れるとき
手動でスペースを入力するのはちょっと面倒です。
自動で入力してもいいんじゃないでしょうか?
そこで、 electric-spacing.el の登場です。
M-x electric-spacing-mode というマイナーモードを
有効にすると使えます。
「=」を入力すると前後にスペースが入りますが、
「==」を入力したときには「==」の前後にスペースが入るように
賢い挙動をしてくれます。
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
- 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
本サイト内の関連パッケージ
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。