string-edit 20160410.2356(in MELPA)
Avoid escape nightmares by editing string in separate buffer

概要

string-edit.el は、ソースコード中の文字列リテラルを
別バッファで編集するパッケージです。

文字列リテラルで M-x string-edit-at-point
実行すれば、その文字列が別バッファにてポップアップされます。

編集終了時にC-c C-cを押せば元のコードに反映され、
C-c C-kで取り止めます。

本家動画 を見れがわかるように、JavaScript(js2-mode)は
特別な処理がなされていて、複数行の文字列に対応してくれます。

それ以外の言語の場合、複数行の文字列リテラルは\nで1行になってしまいます。

とはいえ、 se/find-original がこのようになっているので、
言語に特化した se/string-at-point を定義し、
それを呼ぶようにse/find-originalを再定義すれば多言語に対応できるでしょう。

(defun se/find-original ()
  (if (derived-mode-p 'js2-mode 'js-mode)
      (se/js-strings-at-point)
    (se/string-at-point)))

20150810181600.png
Fig1: 文字列リテラルでM-x string-at-pointするとポップアップ

20150810181611.png
Fig2: 編集

20150810181615.png
Fig3: C-c C-cで反映される(js以外では1行化される…)

インストール

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

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

M-x package-install string-edit

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

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


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