小説執筆に便利、長文発見マクロ(要秀丸エディタ)
小説は文章の連なりだ。ひとつひとつの文章が読みづらいと小説も読みづらくなる。では、読みやすい文章を書くためには、なにに注意しなければならないのか。
文の長さだ。
一文は50文字~60文字くらいが目安だといわれている。もちろん、一概には決めつけられない。60文字を超えていても、語順に気をつけてさえいれば読みやすい文章が書けるだろう。
だが、いちおうの目安があるのだから、推敲時のチェックに利用するのも手だろう。
そこで、秀丸エディタで使用できるマクロを作成してみた。一文の文字数をカウントするマクロだ。長すぎる文があれば別のファイルに抽出してくれる。タグジャンプを使えば元ファイルの該当箇所へジャンプできるようにもしている。活用していただきたい。
以下、引用部分が長文発見マクロである。
//長文発見マクロ。とりあえず作ってみたバージョン //一文が50文字を超えた場合、該当箇所を抽出するマクロ// 超えたくない文字数設定
// 行頭字下げの全角スペースをカウントしたり、文末の判定があやしかったりするので、2文字分の余裕をもたせる。
#moji = 52;// 初期設定
#hidemaru = hidemaruhandle(0);
$hidename = basename2;#count = 0; //文字数のカウント
#startx = 0; //カウント開始位置x
#starty = 0; //カウント開始位置y
#line= 0; //エディタ的に計算した行番号(タグジャンプ用)
#endx = 0; //カウント終了位置x
#endy = 0; //カウント終了位置y// テンポラリファイル作成
// マクロが完成するまでは見えるようにしておく。
newfile;
#hidetemp = hidemaruhandle(0);
// 文字のカウント開始
setactivehidemaru #hidemaru;
gofiletop;// EOFが見つかるまで処理を繰り返す
while (code != -1) {// タブと改行(0x0dを使う。\nはNG)が続くかぎりカーソル移動。
while (code == 0x0d || code == '\t') {
right;
}// カウント開始座標の記憶
#startx = x;
#starty = y;
#line = lineno;// 文末まで処理を繰り返す(ただし文末の判定があやふや)
while (code != '。' && code != '?' && code != '!' && code != 0x0d && code != -1) {// 文末でなければ文字数をカウントしてカーソル移動
#count = #count + 1;
right;}
// カウント終了座標の記憶
right; //句点ふくめてコピーするためのカーソル移動
#endx = x;
#endy = y;// カウントのチェック
if (#count > #moji) {// 該当箇所をコピー
beginsel;
moveto #startx,#starty;
$text = gettext(seltopx,seltopy,selendx,selendy);// テンポラリファイルにペースト
setactivehidemaru #hidetemp;
insert $hidename + "(" + str(#line) + "): " + $text + "\n\n";// 元のファイルに戻りカーソル移動
setactivehidemaru #hidemaru;
moveto #endx,#endy;}
// 文字数カウント初期化
#count = 0;}
// 抽出したテキストの整形
setactivehidemaru #hidetemp;
replaceallfast "」\\n","」",regular;endmacro;
なにぶん素人の作成した秀丸マクロなので、あまりエレガントではない。
「とりあえず動く」
という程度。実際に使っていただければ幸せだが、使用の際は自己責任でお願いします。
カテゴリ
オンライン小説関連の記事トラックバック(0)
このブログ記事を参照しているブログ一覧: 小説執筆に便利、長文発見マクロ(要秀丸エディタ)
このブログ記事に対するトラックバックURL: http://asakawa.sakura.ne.jp/cgi-bin/mt/mt-tb.cgi/123
コメントする