smart-newline 20131207.1940(in MELPA)
Provide smart newline for one keybind.

概要

smart-newline.el は空気読んでくれる「改行」です。

Emacsには改行の入力方法がいろいろありますが、
これを使えばRETだけで以下のコマンドを兼ね備えることになります。

  • C-o (open-line)
  • C-j (newline-and-indent)
  • C-m (newline)
  • reindent-then-newline-and-indent

行と行の間に挿入したいなと思ったら、
C-oではなくてRETを数回押せばいいだけです。

おかげでC-oやC-jのキーバインドが空き、
よく使う他のコマンドが割り当てられます。

言葉で説明するとややこしいので感覚で覚えてください。

とにかくいろんなタイミングでRETを押してみましょう。

僕もありがたく使わせていただいています。

本設定では、C-uを押して通常の改行の挙動を追加しています。

作者による詳しい解説はこちら。
http://ainame.hateblo.jp/entry/2013/12/08/162032

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))

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

M-x package-install smart-newline

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

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

設定 141231144300.smart-newline.el(以下のコードと同一)

(require 'smart-newline)
(global-set-key (kbd "C-m") 'smart-newline)
(add-hook 'ruby-mode-hook 'smart-newline-mode)
(add-hook 'emacs-lisp-mode-hook 'smart-newline-mode)
(add-hook 'org-mode-hook 'smart-newline-mode)

(defadvice smart-newline (around C-u activate)
  "C-uを押したら元のC-mの挙動をするようにした。
org-modeなどで活用。"
  (if (not current-prefix-arg)
      ad-do-it
    (let (current-prefix-arg)
      (let (smart-newline-mode)
        (call-interactively (key-binding (kbd "C-m")))))))

実行方法

$ wget http://rubikitch.com/f/141231144300.smart-newline.el
$ emacs -Q -f package-initialize -l 141231144300.smart-newline.el


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