メーリングリストで要望した内容だけど、個人的に以下のスクリプトを作成した事で労力激減。 私のことなので、当然ショートマクロからの実行を考慮してあるが、これは、RubyForTPZさえあれば実行可能。
#ee 外部エディタ編集テストコマンド(ExecExtEditor)
#
#2005/02/08(Tue) 14:11:16 プロトタイプ作成
#このコマンドで外部編集を行った場合 eer コマンドでその文書にジャンプ可能
# Subject: eer eeコマンド利用文書ジャンプ
# | Message-Id: <2005020814495901162@1214510797115.TPZ>
#eval_start
require "tpz"
include Tpz
#//////////////////////////////////////////////////
#TpzItemクラスにメソッドを追加
#//////////////////////////////////////////////////
class TpzItem
def get_item(title)
# title なアイテムを取得する。同じ title のアイテムがあった場合は、
# 最初に出現したプロジェクト(ツリー順)が取得されるので注意のこと。
item = self
while item do
if item.title == title then
return item
end
item = item.next
end
end
end
#//////////////////////////////////////////////////
#★-----main
#//////////////////////////////////////////////////
#外部エディタ編集アイテム作成(雛型)
#実際運用では、何かしらの固定プロジェクトを設けておいた方が良いかも
#●イニシャル処理
#現在編集している文書の情報を取得
row = Edit::row + 1
doc = tpz_current_document
doc_item = tpz_current_item
doc_pro = tpz_current_project
#あらかじめスクラッププロジェクトに「外部エディタ編集」フォルダを作成しておく事
ee_pro = tpz_scrap_project.get_item("外部エディタ編集")
#「外部エディタ編集」の文書(0)に必要な情報を書き込んでおく
# よって、最後に ee コマンドを実行した文書が対象になる
ee_doc = ee_pro.documents[0]
ee_doc.text = <<TEXT
#{doc_pro.message_id}
#{doc_item.message_id}
#{doc.index}
TEXT
#使用するエディタ&オプションを適宜変更のこと
tpz_exec_command("ExecExtEditor","C:/WZ/wzeditor.exe","/J#{row}")
doc.set_focus
#eval_end
#eer eeコマンド利用文書ジャンプ
#
#2005/02/08(Tue) 14:11:16 プロトタイプ作成
#Subject: ee 外部エディタ編集テストコマンド
# | Message-Id: <2005020814422102883@1214510797115.TPZ>
# にて外部編集を行った文書にジャンプする
#eval_start
require "tpz"
include Tpz
#//////////////////////////////////////////////////
#TpzItemクラスにメソッドを追加
#//////////////////////////////////////////////////
class TpzItem
def get_item_t(title)
# title なアイテムを取得する。同じ title のアイテムがあった場合は、
# 最初に出現したプロジェクト(ツリー順)が取得されるので注意のこと。
item = self
while item do
if item.title == title then
return item
end
item = item.next
end
end
def get_item_m(message_id)
# Message_id なアイテムを取得する。
item = self
while item do
if item.message_id == message_id then
return item
end
item = item.next
end
end
end
## ---------------------------------------------------
# message_id なプロジェクトを取得する。
#
#●使用例
#item = tpz_projects #projectの配列
#sd = get_pro(item,"project_title")
#print sd.title
#
def get_pro(item,message_id)
item.each do |pro|
if pro.message_id == message_id then
return pro
end
end
return nil
end
#//////////////////////////////////////////////////
#★-----main
#//////////////////////////////////////////////////
ee_pro = tpz_scrap_project.get_item_t("外部エディタ編集")
ee_doc = ee_pro.documents[0]
eer_check_array = ee_doc.text.split(/\n/)
doc_pro = get_pro(tpz_projects,eer_check_array[0]) # プロジェクト算出
doc_item = doc_pro.get_item_m(eer_check_array[1]) # アイテム算出
doc = doc_item.documents[eer_check_array[2].to_i] # ドキュメント算出
doc.set_focus
#eval_end
後で読もう。FOMAに向けて環境を整えないと。。。
(追記)
読んだけど、やっぱ面倒だよねぇ。
というのは実用にならないだろうなぁ。要は、 cgi を起動させれば良いのだから、他力本願モードにしようかなぁ。やっぱ .forward 使えるサーバーに引っ越すというのが一番の環境整備か?
面倒だから絶対やらんわな(^^;)