How to tag text in emacs
emacs, function, macros, tags
Solution
Well, there are a bunch of ways. `yasnippet` is one, and I'm sure a bunch of the various xml/html modes have one.
For simplicity, you can use some elisp like:
(defun my-tag-region (b e tag)
"'tag' a region"
(interactive "r\nMTag for region: ")
(save-excursion
(goto-char e)
(insert (format "{/%s}" tag))
(goto-char b)
(insert (format "{%s}" tag))))
Problem
I'm developing a text annotation system in emacs, where the format of the annotation is something like this. If this is the text: ``` Lorem ipsem por favor ``` I need to annotate it like this: ``` {latin}Lorem imsem{/latin} {spanish}por favor{/spanish} ``` So what I want to do is select a region and then run a function or a macro that will prompt for the tag name, and insert the curly braces, the closing / and the tag name into the buffer at the start and end of the region. This is probably pretty straightforward, but I've always found emacs lisp to be rather confusing to get started with, because I don't use it very often at all.