首页 > 其他, 初级, 好玩的 > 用artist-mode画文本图

用artist-mode画文本图

概述

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

截图

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

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

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

为什么使用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的键绑定+自己绑定,键盘绘制会像用鼠标绘制一样顺手。

artist变身

或许有人觉得artist-mode绘制出来的ascii图很不错,但是如果能变成图片或许更好;或者图片是一种硬性要求;或者由于不知道的原因,总有可能有需求将ascii变成图片呢?多一种选择总是好事。

好吧,传送门

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

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

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

分享家:Addthis中国
GD Star Rating
loading...
用artist-mode画文本图, 9.1 out of 10 based on 16 ratings 标签:artist-mode, Emacs, emacser, emacser.com, irc, org, screenshot, 截图, 配色, 鼠标

相关日志

分类: 其他, 初级, 好玩的
  1. 2017年9月4日07:34 | #1

    スーパーコピーブランド激安ショッピングモール!
    ブランドスーパーコピー品
    ごとにぱっと見て全然違わないほどの外観を持ち、手触りも同じである。
    当店スーパーコピーブランド商品とともに、高品質と安心をお届けいたします!
    ルイヴィトンスーパーコピーN級品

    [回复]

评论分页
1 2 3 41374
  1. 2010年5月19日03:33 | #1
  2. 2010年8月4日03:25 | #2
  3. 2012年4月22日10:16 | #3
  4. 2012年8月12日16:59 | #4
  5. 2012年10月4日11:24 | #5
  6. 2014年6月22日13:05 | #6
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: