サクラエディタのマクロで挫折
お久しぶりのbonlifeです。慢性的な体調不良です。朝起きられません。
さてさて、サクラエディタのマクロを試している人の日記(id:shuntafree:20080305:1204749405)を見てたら、マクロ記述言語としてPythonも使えるとのこと。わくわくしちゃいますね。で、試してみたら、動かなかったよ!
- sample_macro.pys
str = "Hello, Python Macro World!!" InsText(str)
こういう超シンプルなマクロでエラー…。もしかして、アレかな。ActivePython使わないとダメなのかな。ActivePerlインストールした状態で、以下のようなスクリプトは動きました。
- sample_macro.pls
$str = "Hello, Perl Macro World!!"; InsText($str)
面倒なので後で調べることに。
それはそうと、選択中の行に対し、行頭に'>'を入れるマクロは以下のように修正した方が良い気がします。
- insLineFeed_rev.js
//insLineHead_rev.js //選択中の行に対し、行頭に'>'を入れる var str = GetSelectedString; str = str.replace(/^/,'>'); str = str.replace(/\n/g, '\n>'); InsText(str);
元のやり方だと改行が2回以上続くケースで「あれれ…」な結果になっちゃいますよね。後、行頭に'>'を追加したいのに選択範囲の開始場所が行頭じゃない場合がアウトっぽい。ので、修正案。
- insLineHead_rev2.js
//insLineHead_rev2.js //選択中の行に対し、行頭に'>'を入れる var from = GetSelectLineFrom var selectedLineCount = GetSelectLineTo - GetSelectLineFrom + 1 CancelMode GoFileTop for (i=0;i<from-1;i++) { Down } for (i=0;i<selectedLineCount;i++) { InsText('>') GoLineTop Down }
なんかイマイチだし、遅そうですけど、動きました!ただ、今度は1文字も選択してなくてもカーソル行の行頭に'>'が追記される罠。
まとめると、サクラエディタでPythonマクロ使う詳しい方法を教えてください!!ってことです。