我想创建一个Emacs模式,其行为方式如下:
当开始一个新段落时,Emacs会在一个缓冲区窗口中询问 要使用的模板:
buffer window:
1 - standard (default)
2 - person
3 - insertion
4 - location
5 - header
Just <ENTER> selects 1 - standard (default).
每当放入两个捕获字母时,一切都要到下一个空格 或者行结尾应该是大写字母:
PErson -> PERSON
PErson NAmed CHuck -> PERSON NAMED CHUCK
标准模板的工作原理如下:
标准段落以一个人开头。在这个人之后,可能还是 可能不会跟随一些():
如果(),则遵循换行符:
input (note the missing <SPACE>):
PErson(doing something).bla bla bla.
output:
PERSON <i>(doing something)</i>.
bla bla bla.
如果没有():
input:
PErson.bla bla bla.
output:
PERSON. bla bla bla.
根据所选模板演示应该发生的事情, 以下是一些示例输入:
Choose "1 - standard" + input:
PErson(doing something. Something else. Something else).bla bla
bla<ENTER>bla bla bla<ENTER>bla bla bla.<ENTER><ENTER>
should become:
output:
<standard>PERSON <i>(doing something. Something else. Something else)</i>.
bla bla bla
bla bla bla
bla bla bla.</standard>
Choose "2 - person" + input:
Description of a place. PErson NAmed CHuck walks around the corner.<ENTER>
output:
<person><i>Description of a place.</i> PERSON NAMED CHUCK <i>walks around
the corner.</i></person>
Choose "3 - insertion" + input:
Something happens. Something can be heard. Something can be seen.<ENTER>
output:
<insertion><i>(Something happens. Something can be heard. Something can be
seen.)</i></insertion>
Note:
Depending on the selected template, a paragraph ends with <ENTER> or
<ENTER><ENTER>.
最终的标记文件(html,xml,无论如何)应该在LibreOffice中使用 进一步处理。
前段时间我已经写了一个Emacs模式。很简单的事情。但随着 在这里,我将非常感谢您提供的每一个提示。
答案 0 :(得分:0)
看起来你正在尝试编写一种编剧模式。
不要自己写,也许给Fountain Mode一个镜头:
Fountain Mode旨在成为使用Fountain标记格式的GNU Emacs的全功能编剧环境。有关Fountain标记格式的更多信息,请访问http://fountain.io。
喷泉模式可以通过MELPA或MELPA stable安装。这是GitHub页面的截图: