Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time

string-edit.el Build Status

Avoid escape nightmares by editing strings in a separate buffer.


I highly recommended installing string-edit through elpa.

It's available on marmalade and melpa:

M-x package-install string-edit

You can also install the dependencies on your own, and just dump string-edit in your path somewhere:


Call string-edit-at-point when inside a string. A new buffer pops up with unescaped content, letting you edit it directly.

Then press C-c C-c to re-escape the content and insert into the string, or C-c C-k to abort.


JavaScript and HTML

I made this package to edit html templates in javascript code. So it works a little special there:

  • newlines in the content resolves into multiple concatenated strings.
  • if the content starts with a <, html-mode is enabled in the popup buffer.


  • string interpolation (handle with intangible overlays?)
  • what's the difference between a newline and a \n in an emacs lisp multiline string?
  • setting major-mode for the popup buffer
  • changing major-mode when inside the popup buffer clears all local vars, breaking the functionality - any way around that?


Yes, please do. :-)

All changes must be accompanied by feature tests, or I might break it later. They are written in Ecukes, a Cucumber for Emacs.

You'll find the repo at:

To fetch the test dependencies, install cask if you haven't already, then:

$ cd /path/to/string-edit
$ cask

Run the tests with:

$ ./


Copyright (C) 2013 Magnar Sveen

Author: Magnar Sveen

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see


Avoid escape nightmares by editing strings in a separate buffer


Contributors 4

You can’t perform that action at this time.