我想在emacs中编辑boustrophedon中的文本。对于那些不了解boustrophedon文本方向的人来说,在田野中像“牛转”一样或者像打印机喷墨一样。出于同样的原因,这在农场或打印机中是有效的,一旦你习惯了它,这个文本非常有效(不需要太长时间)。
更多关于boustrophedon排版/布局: http://www.ntg.nl/pipermail/aleph/2004-March/000094.html
据我所知,没有这种排版风格的实现,我对如何实现它感到困惑。
关于如何做到这一点的任何想法?
谢谢, 安德烈亚斯
答案 0 :(得分:2)
我认为建议使用self-insert-command,拦截事件以及相应地修改缓冲区是你想要做的。然后,您需要重新定向方向命令(前向字符和朋友在相反的行上反转),依此类推。
很多工作,但绝对可能。
在你写任何太复杂的事情之前,请先询问emacs-devel。正如评论所暗示的那样,对这样的东西进行通用支持可能是有用的......尽管具有不同方向的任意文本片段不会以与文本相同的方式进行自动换行(插入时)。
编辑:显然建议使用self-insert-command对此不起作用,因此您需要设置一个键映射(并绑定?a到(my-new-insert-command?a)等等。 )。
答案 1 :(得分:1)
您可以在sed
中编写它我从sed1liners文本中删除rev
脚本以跳过一行,然后每隔一行rev
:
alias boustrophedon='sed -n "1{p;b a};{/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//;p};n;p;:a"'
$> echo -en "This\nis\nBoustrou...\ntext\non\ndisplay\nhere.\n" | boustrophedon
This
si
Boustrou...
txet
on
yalpsid
here.
或者,如果您想处理整个文件:
$> boustrophedon <filename>
答案 2 :(得分:0)
有“翻牛”的linux软件。查看http://traevoli.com/boust/ 享受!