行番号挿入No.36757
こうき さん 18/08/06 19:51
 
長年秀丸のお世話になっています。こうきと申します。
建築の仕事でAutoCADで使うインタプリタ系プログラム言語「AutoLISP」の開発をや
っております。
「AutoLISP」プログラムの中に
(setq errrrr "12345")
という行を数多く仕込んであります。変数errrrrの後ろは実は行番号です。「AutoLI
SP」はプログラムを改良する度にロードして使うのですが、ロード不良があった時に
はこの変数errrrrを確認することでいち早く不良箇所を特定できて便利なので、この
方法を利用しています。
(setq errrrr "XXXXXX")
現在は恥ずかしながら数ヶ月に一度、手作業でXXXXXX部分を選択して右クリックで行
番号を入れて行番号のズレを修正しています。
これまで秀丸マクロは小手先だけで使ってきましたが、一気に行番号を差し替えてく
れるマクロはできないでしょうか?
よろしくお願い致します。

[ ]
RE:36757 行番号挿入No.36759
秀丸担当 さん 18/08/07 09:20
 

12345行目の内容に、その行の行番号を表す情報が書かれているということかと思い
ます。
以下のようなマクロでどうでしょうか。

setcompatiblemode 0x20200;
gofiletop;
while( 1 ) {
  searchdown "\\(setq errrrr \"([0-9]+)\"\\)(?\\1)", regular;
  if( result == false ) break;
  insert str(lineno);
}

正規表現で検索して行番号部分を入れ替えていますが、[その他]→[動作環境]→[検
索]で「検索での表示」が「範囲選択」になっている状態で、「\(setq errrrr "([0-
9]+)"\)(?\1)」を検索すると行番号部分が選択されます。
選択されたものを置き換える形で行番号を挿入しています。
setcompatiblemode 0x20200;の、0x200の部分は動作環境の検索での表示を範囲選択
と同等に振舞うようにする指定です。

[ ]
RE:36759 行番号挿入No.36760
こうき さん 18/08/08 09:53
 
こうきです。
返信が遅れて申し訳ありません。
完璧でした。
誠にありがとうございました。
頂いたマクロでマクロの勉強に力を入れます。
完了で。

[ ]