発端
さきほどの記事では、
"paste"イベントが実装されたけれどそのイベントを扱っているLuaプログラム自体が改行コードを想定していない
と書いていました。
実際、改行コード入りの複数行にわたる文字列をコピペしてもうまくいきません。
しかし思いました。
あれ? "paste"イベント自体は、改行コードも含めて文字列を返しているのでは?
そこで以下の検証。
検証用コード
検証用プログラム
while true do local event, str = os.pullEvent("paste") local lengh = string.len(str) local pos1 = string.find(str,"\n") print("lenght: ", length) print("newline char pos: ", pos1) print(str) print("--") end
コピペする文字列
abc def ghi
(CTRL+Vで)コピペした結果
すばらしい!!! pasteイベント自体は改行コードも問題なく返してくれています。
現在(computercraft1.6pr0)は、editコマンドやshellのプログラムで改行コードを取り扱うようになっていませんが、一部を書き換えるだけで問題なく複数行コピー&ペーストできます。
今後の正式版に期待しましょう。
まとめ
- computercraft1.6pr0では、"paste"イベントが実装されたので、複数行コピー&ペーストが可能です
- ただし、editおよびshellプログラム自体が複数行を扱うようプログラムされていないため、これらの中ではまだできません。
- 正式版でeditおよびshellプログラムが改修されていることを祈りましょう。
- もし正式版で直っていなくても、どちらもLuaプログラムなので自分で直せば大丈夫!