mieki256's diary



2017/03/26() [n年前の日記]

#1 [xyzzy][emacs] エディタで図を書く

昨日の日記を書いてる最中、AsciiArt というか、文字だけを使ってちょっとした図を入れたいなと思いついてしまって、ちと四苦八苦したわけで。

エディタを使って絵を書く(描く)何かってないのかなと。少し調べてみた。

xyzzyの罫線モード。 :

xyzzy なら罫線モードという機能がある。ツール(T) → 罫線モード(R) を選べば、Ctrl + 矢印キーで線が描ける。Ctrl + Shift + 矢印キーで消去。

_xyzzy - emacs like editor in windows
_xyzzy 関連

ただ、この罫線モード、水平線、垂直線、四角を書くことにしか対応してない。

emacsのpicture-mode。 :

emacs なら、picture-mode という機能がある。手元の NTEmacs 24.5.1 でも動作した。
  • M-x picture-mode あるいは M-x edit-picture でモードに入れる。
  • C-c C-c でモード終了。

_GNU Emacs Manual(Japanese Translation): Picture Mode
_Emacs で図を描く - Higepon’s blog
_Meadow/Emacs memo: 表・図・画像などの表示・作成

例えば C-SPC で矩形範囲のマークを設定して、C-c C-r を叩けば四角が描かれる…のだけど。
    +-----------------+
    |                 |
+--------+     +--------------------+
|   |    |     |      |             |
|   |    |     |      |             |
|   |    |     |      |             |
|   +----|-----|------+             |
|        |     |                    |
+--------+     +--------------------+

このキー割り当てはどこで設定してあるのだか。手元の環境で M-x describe-bindings をしたらそういう割り当てになってたんだけど…。

C-c . や C-c ^ 等を叩くとカーソルの移動方向が固定されるので、後は描画したい文字を入力していけばいい。
+------------+------------+---------------+
| C-c `      | C-c ^      | C-c '         |
|  or        |  or        |  or           |
| C-c Home   | C-c Up     | C-c PageUp    |
+------------+------------+---------------+
|            |            |               |
|            |  `  ^  '   |               |
|            |   ` | '    |               |
| C-c <      |    `|'     | C-c >         |
|  or        | <---+--->  |  or           |
| C-c Left   |    /|\     | C-c Right     |
|            |   / | \    |               |
|            |  /  .  \   |               |
|            |            |               |
+------------+------------+---------------+
| C-c /      | C-c .      | C-c \         |
|  or        |  or        |  or           |
| C-c End    | C-c Down   | C-c PageDown  |
+------------+------------+---------------+

英語フォントなら _バックスラッシュ が「/」の左右反転で表示されるので、ちゃんと斜め線も表現できるけど。日本語フォントを表示してる環境では「\」になっちゃう点がなんだかアレではあるなと…。でもまあ、 _歴史的経緯 があるので仕方ない。

_日本語文字コード問題: 円記号とバックスラッシュを区別して入力したい - Windows編

なかなか面倒臭い。

設定によっては、picture-mode を使う際に勝手にタブ文字が入力されて表示がずれる時があるかもしれない。そんな時は、タブ文字を空白文字で置き換える機能を有効にする。
M-x set-variable RET
indent-tabs-mode RET
nil
M-x set-variable で変数の値を変更できる。変数 indent-tabs-mode に nil を設定してやると、タブ文字が空白文字で置き換わる状態になる。この設定は、設定したバッファのみで有効。

emacsのartist-mode。 :

emacs の artist-mode を使えば、マウスを使って絵を描くこともできる。
  • M-x artist-mode でモードになる。
  • C-c C-c でモード終了。

手元の NTEmacs 24.5.1 では、以下のような割り当てになっていた。
  • 左ボタンを押してマウスを動かすと描画。
  • 右ボタンを押してマウスを動かすと消しゴム。
  • Shift + 右ボタンで、線になる感じで描画。
  • 中ボタンで、モード切替メニュー。四角を描いたり塗り潰したり等のモードをメニューから選べる。

                                                                         ...
                            .                                              ..
                           ..            .       ..                         ..
         ...      .        .             ..      . ..                        ..
      ....      ...        .            . ..    ..   .                        .
    ...  ....   .          ...          .  .  ...........                     .             ..
   ..  ..       .          .....        .  .... .       .......      ..       .              .
 ...  ..        .     ............      .   .. . ...........  ....   ...     .               .
 .    .         .    .. ..        ...   .    .....       .....   .... ...    .               .
.  ....         .   .   .  .......  ... .    ...           .....    ... ..   ......          .
. .. .           ....  .....     ..    ..             .....  .....    .  .. ..    ..        .
. . ..        . ....   . .        ..                ...   ...     .....    ..   .  ..      ..
..  .         .... ..  . .      .....               .  ...  .         .     .  .    ..     .
..  ..       ..  ... ... .     ...  .               .. ..   .                 ...     .    .
     .       .     .....       . . ..                ........                 . .     .    ..
      ..    ..      ....       .....                   .....                . ...   ...     ..
       ..   ...     .  ..       ..      .                    .              .     ...     .....
        ..  . ..    .   ..             ..                  ........        ........        .....
         .....  ..  .    .           ...                     ..  .         .                .  ..
            ..   .  ..   .           ....                                 ..                 ...
                 ..  ..  .              .                                ...  ......           ..
                  .   ....                                             ..   ...  . ...          ....
                  .      .                                           ...     ..  .   ..            ...
                  .    . ...         ...           ..              ...         ...   ....            ...
                  .    ..  ..          ............              ...            ..      .....          ...
                  .    . .  ....                               ....             ..        ..........     .
                  .    .  ..   ....                          ... ..            ..          .       .. .......
                  ..   .   ..      .....                ....... ..           ..           .                 ...
                   ..  .    ..         ....         ..... .......          ...            .                   ..
                    .....    ...          ..........   ........          ...              .
                       ..      ....               ..     ...            ..                .
                                  .....          ..      .                                .
                                                ..       .
                                                .
なんとか描けないでもない。

Vimでも描けるらしい。 :

Vim に DrawIt というプラグインを追加すると、線や四角を描けるようになるらしい。

_Vimエディタで線を描画する - 名無しのvim使い
_scripts/26 - VimWiki
_vim + drawit + ditaa でテキストダイアグラムを画像に - Engineer in garage

手元の環境、Windows10 x64 + Kaoriya版 gvim 8.0.134 に導入して試したところ動作した。emacs の picture-mode と違って事前に空間を作っておく必要があるけれど、xyzzy の罫線モードっぽいノリで描けるのはイイ感じ。Home、End、PageUp、PageDown でいきなり斜め線が描けるのもグッド。

エディタじゃない選択肢。 :

文字を使って絵が描ける専用ソフトを使う。

_JavE - Java Ascii Versatile Editor

あるいはWebサービスを利用する手も。

_ASCIIFlow Infinity
_Asciiflow - ASCII Flow Diagram Tool

2017/03/29追記。 :

せっかくだから、各エディタの機能を使って図を描くソレをキャプチャしてみたり。



こんなノリで描けるようですよ、と。

ただ、vimの操作がちょっと怪しいけど…。\dsi → Ctrl+V → 矩形選択 → \b や \e で四角や円が描けるはずなのだけど、カーソルが妙なところに飛んでいってしまう…。

以上です。

過去ログ表示

Prev - 2017/03 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project