用artist-mode画文本图

2010年5月19日 ahei 发表评论 阅读评论

作者: fangzhzh

概述

artist是一个emacs的内置lisp包。
在artist-mode中,你可以使用鼠标或者键盘来画线(可以带箭头)、矩形、正方形、多边形、椭圆、圆和一些类似于水蒸气似的不规则图形,当然可以擦除,填出图形,还可以在其上写字。

截图

这是一个很不错的绘制单链表的截图flash

这是一个画了一些形状的截图, 这幅图画了一个A.

这是我工作时的一个绘制结果.

用artist-mode画文本图

为什么使用Artist-mode

我经常在写程序的时候,希望在文档里画一些类的继承关系、包含关系什么的,以帮助读这个文件的人能够更好的理解代码,但是此处不能且不适合放一张jpg(要是h,cpp文件里能插图,那多拉风啊)。

就考虑用plain-text的文本格式来绘图。初始时想用“-|+_”这几个符号来拼凑,但是工作效率太低,而且容易出错,一修改就几乎整个图作废。将有限的时间浪费在如此耗时,且没有技术含量的工作上,那还不就等于浪费生命啊,剩下来的时间多去看看twitter多好!

正如截图中绘制单链表的截图flash所展示,artist-mode来做这件事情,那是最适合不过了。那么来初探一下emacs的artist-mode能够如何完成任务呢。

怎么使用Mouse 绘制

进入artist-mode

M-x artist-mode

离开artist-mode

M-x artist-mode-off

三个mouse

mouse-2(鼠标中键),shift mouse-2

弹出一个菜单,从菜单里你可以选择要使用左键画什么类型更改一些设定

mouse-1 ( 鼠标左键) , shift-mouse-1

绘制部分由鼠标左键完成,请参考绘制操作

mouse-3 ( 鼠标右键) , shift mouse-3
mouse-3 删除鼠标下的一个字符
shift mouse-3 画出矩形框,删除框选所有字符

绘制操作(鼠标左键)

操作 无shift shift
pen 单击,在鼠标点填充一个“填充符号”,默认为".";按下左键,拖动,抬起,绘制填充符号组成的线 单击,在鼠标点填充一个“o”;按下左键,拖动,抬起,绘制一条从初始点到最终点的直线
Line 任意方向的线 直线
Rectangle 矩形 正方形1
Poly-line 任意方向的多边形 每条线都是直线的多边形
Ellipses 椭圆 2
Text 文本 覆盖式文本
Spray-can 喷雾器3 设置喷雾器的大小
Erase 橡皮,擦掉一个字符 擦掉矩形内字符
Vaporize 擦除一行 擦除所有相连的行
Cut 剪切矩形 剪切正方形
copy 复制矩形 复制正方形
paste 粘贴 粘贴
Flood-fill 填充工具,填充 填充

一些说明

直线:只能是垂直,水平,对角线

箭头:绘制线,或多边形时,可以设置箭头,详细见箭头.

设定

设定选项 含义
Set fill 设定用来填充矩形和正方形的字符
Set line 设定绘制线的时候使用的字符
Erase char 设置擦除的时候使用的字符
Trimming 开关修剪行尾的功能(一个图画完,一行行尾的空格会被移除)
Borders 开关在填充图形周围绘制行边界的功能

箭头

在artist-mode中,有下面两个键

< artist-toggle-first-arrow
> artist-toggle-second-arrow

就像他们的快捷键所展示,artist-toggle-first-arrow将一条直线的第一个字符变为<,而artist-toggle-second-arrow将一条线的最后一个字符变为>。

命令

基本命令

命令 功能
M-x artist-key-set-point 执行以下功能
M-x artist-select-operation 选择绘制类型
M-x artist-next-line, M-x artist-previous-line, M-x artist-forward-char and M-x artist-backward-char. 移动
M-x artist-select-fill-char 设置填充字符
M-x artist-select-line-char 设置绘制时字符
M-x artist-select-erase-char 设置擦除时使用字符
M-x artist-toggle-rubber-banding 开关 rubber-banding功能(不知道是什么)
M-x artist-toggle-trim-line-endings 开关修剪行尾的功能
M-x artist-toggle-borderless-shapes 开关在填充图形周围绘制行边界的功能
artist-key-set-point 执行的功能
情况 作用
lines/rectangles/squares 设置起始/结束点
poly-lines 设置其中一个点, (使用 C-u M-x artist-key-set-point 设置结束点)
擦除字符时 开关橡皮功能
剪切,复制 设置区域/正方形 的 开始/结束点
粘贴时 粘贴动作

箭头命令

M-x artist-toggle-first-arrow 设置/取消 在线/多线段开头的箭头
M-x artist-toggle-second-arrow 设置/取消 在线/多线段结尾的箭头

选择操作

M-x artist-select-op-line 绘制线
M-x artist-select-op-straight-line 绘制直线
M-x artist-select-op-rectangle 绘制矩形
M-x artist-select-op-square 绘制正方形
M-x artist-select-op-poly-line 绘制多线段
M-x artist-select-op-straight-poly-line 绘制直线组成的多线段
M-x artist-select-op-ellipse 绘制椭圆
M-x artist-select-op-circle 绘制圆
M-x artist-select-op-text-see-thru 写字(插入模式)
M-x artist-select-op-text-overwrite 写字(覆盖模式)
M-x artist-select-op-spray-can 喷雾器
M-x artist-select-op-spray-set-size 设置喷雾器的大小
M-x artist-select-op-erase-char 擦除字符
M-x artist-select-op-erase-rectangle 擦除矩形内字符
M-x artist-select-op-vaporize-line 擦除一行
M-x artist-select-op-vaporize-lines 擦除所有相连的行
M-x artist-select-op-cut-rectangle 剪切矩形
M-x artist-select-op-copy-rectangle 复制矩形
M-x artist-select-op-paste 粘贴
M-x artist-select-op-flood-fill 填充

有了以上的介绍,我将所有artist-mode的命令绘制为一张表格,再参考artist-mode的键绑定+自己绑定,键盘绘制会像用鼠标绘制一样顺手。

1. 我试验,此处并没有绘制正方形,难道是我的版本有问题,求确认。

2.1相同,我仍然没有得到圆,得到的是椭圆

3. 顾名思义,很拉风的东西,但是我感觉不实用

GD Star Rating
loading...
用artist-mode画文本图, 8.0 out of 10 based on 1 rating 标签:artist-mode, Emacs, irc, org, screenshot, 截图, 配色, 鼠标
::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

大妈的多重宇宙 - YouTube

全新自媒体:科幻/读书/说故事...欢迎订阅;

或是邮件反馈可也:
askdama[AT]googlegroups.com


订阅 substack 体验古早写作:
Zoom.Quiet’s Chaos42 | Substack


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

关注公众号, 持续获得相关各种嗯哼:
zoomquiet



粤ICP备18025058号-1
公安备案号: 44049002000656 ...::