ホワイトボードみたいな「白紙の好きな位置に書く」をテキストエディタ上で実現する『Freetext』

freetext_demo_1

Freetext とは

ホワイトボードみたいな「白紙の好きな位置に書く」をテキストエディタ上で実現すること。

実現アイデアの肝は以下 4 つ。

  • (1) テキストエディタの フリーカーソル を有効にする
  • (2) 行番号、ルーラー、空白文字表記などをなくして 表示を白紙に近づける
  • (3) 直線をいかに簡単に書くか、など マクロスクリプトで手作業を省力化 する
  • (4) Freetext を実現する専用拡張子を設ける(そうすれば「拡張子別の設定」として Freetext 用の設定を集中的に組み込める)

フリーカーソルとは?

一部のテキストエディタ(特に国産テキストエディタ)には フリーカーソル という機能がある。(この呼び名の)元は一太郎など国産ワードプロセッサから始まった機能っぽい。海外では Virtual Space と呼ぶことが多い。 昔の Visual Studio にはある みたいだが、 VSCode ではまだ実装されていない ようだ。

フリーカーソルを使うと、以下のようなことができる。

    test
              ^^^^^^
            たとえばこのあたりにカーソルを移動させることができる

つまり 行末の先にカーソルを移動させることができる。そこで入力を行うと、間には自動的に半角スペースが挿入されるという仕組み。

サンプル

秀丸エディタで実現した hidemaru_freetext。GitHub に置いた。

以下は画像例。hidemaru_freetext 開発時の思考こねこねを Freetext でやってみた例である。

hidemaru_freetext_image

使い心地

(Good) 好きな位置から書き始められるのは気持ちいい

ホワイトボードに書くみたいに、空間を自由に使って書けるのはとても気持ちが良い。

最大化して、文字サイズも小さくすれば、領域としてはかなり広い。

(Good) アナログよりも速く、キレイ

アナログで手書きだと字を書くのがどうしても遅いし、また汚い(人によるだろうが少なくとも私は苦手だ)。

デジタルだとタイピングによる断然速くキレイに書ける。が、アナログみたいな空間的自由が無く、特にブレストのような発想重視ではやりづらい。

しかし Freetext なら、自由配置については解決しているため、いわば両者のいいとこどりのような手段を実現できる(というと言い過ぎだが、近い操作感を実現できる)

(Bad) 線で結ぶ、線で囲むなどは苦手

容易に想像できるが、線で結んだり線で囲んだりといったことは苦手である。

テキストエディタの限界ではなかろうか。あるいはエディタのマクロやスクリプトによる自動化処理を工夫しまくれば実現できるのかもしれないが、現状の私の実力では皆目検討もつかない。

ただし、悪あがきとして一部は実現している。

(Bad) カーソル移動の癖が強い

(Vimmer などがどうかは知らないが秀丸エディタマンの私は)カーソルキー/Home/End キーを多用してカーソルを移動させる。ここには「行末で→を押すと次行の行頭に行く」「行頭で←を押すと前行の行末に行く」といった前提も含んでいる。

しかし、フリーカーソルモードだと、この前提が効かなくなるため、「あれ?行頭に移動しねぇぞ」なんてことが起こり、違和感が満載なのである。

フリーカーソル時はフリーカーソルの挙動・癖というものがある。私は Freetext を使いはじめて数日だが、まだ慣れていない。そのうち慣れるだろうが。