developer's diary

最近はc#のエントリが多いです

秀丸のマクロを他の言語で実行する(ruby編)

ruby.mac(秀丸から実行するマクロファイル)

if( selecting == 1 ) {
    run "ruby \"C:\\Program Files\\Hidemaru\\mac\\test.rb\"  < con > con ";
}

test.rb(ruby.macから実行するrubyのソース)

for line in STDIN
  puts line.chomp + "a"
end

※秀丸のマクロのパスを「C:\Program Files\Hidemaru\mac」として記述しています。(動的にパスを編集できる方法を知ってれば是非教えてください!)

選択した範囲にたいしてrubyで編集されます。

例えば以下のようなデータを選択した場合。

1234
12345
123456

下記結果になります。

1234a
12345a
123456a

ソースの修正履歴を残したい場合の例(ruby編)

test.rbを下記のように編集してみる

require "date"
puts "# --- add start --- #{ Date.today.to_s } ---#"
for line in STDIN
  print line
end
print "# --- add  end  --- #{ Date.today.to_s } ---#"

上記の例だと

1234
12345
123456

下記結果になります。

# --- add start --- 2008-11-29 ---#
1234
12345
123456
# --- add  end  --- 2008-11-29 ---#