Emacs 绘图纯文本流程图

Table of Contents

平时做笔记时偶尔会画画流程图,但自己比较懒,很少专门用绘图软件去画,靠 -+|/\<>^v 几个字符组合起来就能满足日常需求了。

Emacs 有 picture-mode 和 artist-mode 两个插件可以很好地完成工作,前者倾向于键盘,后者倾向于使用鼠标绘图,这两个我都在用。

1. picture-mode

M-x picture-mode 进入绘图模式。

在绘图模式中,需要依据方向来插入字符,例如,我要从光标当前位置向右斜下方每行插入“\”,并保持对齐来表达箭头,就先键入快捷键 C-c \,然后按“\”插入字符即可。

每个方向对应的快捷键如下:

   +-------+   +-------+   +-------+
   | C-c ` |   | C-c ^ |   | C-c ' |
   +-------+   +-------+   +-------+
           ^       ^       ^
            \      |      /
             \     |     /
              \    |    /
               \   |   /
+-------+       \  |  /        +-------+
| C-c < |<-------------------->| C-c > |
+-------+       /  |  \        +-------+
               /   |   \
              /    |    \
             /     |     \
            /      |      \
           v       v       v
   +-------+   +-------+   +-------+
   | C-c / |   | C-c . |   | C-c \ |
   +-------+   +-------+   +-------+

上图就是用 picture-mode 绘制的。要自动做出上图中的方框,只需要 C-空格,然后选取要包围的文字,插件会依据 Mark 的起始位置和结束位置来判断绘制的区域的,但是要注意预留空格,比如我要将下面的“hello”放入方框中,就要事先预留好空格位置(为了直观呈现出空格区域,下面我用“.”来代替空格):

............
......hello.
............

然后 C-空格,Mark 的起始位置和结束位置如下,第一行的“|”字符表示起始位置,最后行的“|”字符表示结束位置:

.....|......
......hello.
...........|

最后按 C-c r 即可:

+-----+
|hello|
+-----+

C-c C-c 退出绘图模式。更多功能请查看帮助 C-h m。

2. artist-mode

1、M-x artist-mode,进入绘图模式。

2、按住鼠标左键,就能从当前可置放光标的任意位置开始绘图;单击鼠标中键可以选择图形、线条等等。

3、C-c C-c 退出绘图模式。

更多功能请查看帮助 C-h m。