|
ActiveState Perlを入れてみて試してみたのですが、標準入力でコードを実行し、EO
Fの制御コード(0x1Aの文字)まででコードが終わり、それ以降の標準入力は、実行
されるコードで取得できるということがわかりました。
そういう使い方ができるとは知りませんでした。
秀丸エディタで制御コードを入力するには、[その他]→[制御コード入力]からできる
のですが、EOFの制御コードだけはできないようになっています。10進数では26で、1
6進数では0x1Aの文字で、制御コード入力のダイアログからは敢えて外してあります。
EOFの制御コードを入れるには、マクロで
insert "\x1A";
とする必要があります。
これを実行すると、Zが反転した文字になって見えます。
このマクロを1つ作っておいて、マクロ登録してキー割り当てしておくと便利かもし
れません。
例えば以下のような感じで、Zの反転は手動入力して、タブBの内容はその後にコピペ
して、無題ファイルのままperlに標準入力させることでできました。
for (;<STDIN>;){
chomp($_);
print "$_\n";
}
Z ←これはEOF制御コードで、Zの反転として見える
タブB内容
hoge1
hoge2
hoge3
こういうコピペもせず、あくまでタブAとタブBということであれば、上記作業を自動
的にやるマクロか、タブAの内容を自動的に一時ファイルに保存するマクロなど、何
らかのマクロでやるしかないです。
例えば、タブAを一時的な環境変数TEMPのフォルダに保存して、それを実行するとし
たら、以下のような感じになります。
タブBは、何をもってしてタブBと判断するのかわからないですが、例では次の秀丸エ
ディタにしてみています。
runexのパラメータ指定は適当ですが、使い方はマクロヘルプのrunexを参照してほし
いです。
$temp = getenv("TEMP")+"\\test201905223.pl";
deletefile $temp;
appendsave $temp; //タブAを一時ファイルに保存
nexthidemaru; //タブBへ(次の秀丸エディタ)
runex "perl.exe " + $temp
, 1 //
, 4, "" //現在の内容を標準入力
, 4, "" //新規に標準出力
;
deletefile $temp; //一時ファイルを削除
|
|