クリップボードへの転送
Posted feedbacks - Other
サクラエディタはJScriptやVBScriptで書いたマクロを使えるんだぜ、というアピール。
"hoge.js" などの名前で保存し、「ツール」の「キーマクロの読み込み」でキーマクロに設定したのち、Ctrl + Shift + L で実行します。
"hoge.js" などの名前で保存し、「ツール」の「キーマクロの読み込み」でキーマクロに設定したのち、Ctrl + Shift + L で実行します。
see: サクラエディタマクロ
1 2 3 4 5 6 | Editor.SelectAll();
Editor.Copy();
for (var i=0; i<3; i++) {
Editor.GoFileEnd();
Editor.Paste();
}
|
Mac OS Xには pbcopy, pbpasteの名前でシェルから クリップポードを操作するコマンドが 存在します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/usr/bin/env ruby -wKU
if (ARGV.length != 1)
print "Usage: handle_pb [-show] text\n"
end
if ARGV.include?('-show')
print %x{ pbpaste }
else
ENV['PB_COPY_TEXT'] = ARGV[0]
# デフォルトではpbcopyは日本語の場合Shift-JISしか扱えない
%x{ echo $PB_COPY_TEXT | nkf -s | pbcopy }
end
|
ファイル入出力のテスト。 Infernoの場合は/chan/snarfに対してread/writeすると コピーバッファ(snarfと呼ばれている)に アクセスしていることになる。 インターフェースはxcutに倣った。 引数なしで実行するとstdinからのデータを コピーバッファに格納する。 -pをつけて実行するとコピーバッファの内容をstdoutに出力する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | # usage: d188 [-p]
# -p : paste to stdout
# none : copy from stdin to clipboard
implement d188;
include "sys.m";
include "draw.m";
d188: module{
sys: Sys;
init: fn(ctx: ref Draw->Context, argv: list of string);
cut: fn();
paste: fn();
};
cut()
{
stdin: ref Sys->FD;
snarf: ref Sys->FD;
buf:= array[256] of byte;
stdin = sys->fildes(0);
snarf = sys->open("/chan/snarf", sys->OWRITE);
if(snarf == nil){
return;
}
for(;;){
n:= sys->read(stdin, buf, len buf);
if(n <= 0) break;
sys->write(snarf, buf, n);
}
}
paste()
{
snarf: ref sys->FD;
buf:= array[256] of byte;
snarf = sys->open("/chan/snarf", sys->OREAD);
if(snarf == nil){
return;
}
for(;;){
n := sys->read(snarf, buf, len buf);
if(n <= 0) break;
sys->print("%s", string buf[0: n]);
}
}
init(ctx: ref Draw->Context, argv: list of string)
{
is_p := 0;
sys = load Sys Sys->PATH;
argv = tl argv;
while(argv != nil){
if(hd argv == "-p"){
is_p = 1;
}
argv = tl argv;
}
if(is_p){
paste();
}else{
cut();
}
}
|

mattsan
#6644()
Rating6/8=0.75
クリップボード(や同等の機能)へテキストを転送するプログラムをお願いします。 また可能でしたらクリップボードのデータを取り出すプログラムもお願いします。
システムに依存する内容ですが、応用範囲が広いと思いましたので出題させてもらいました。
[ reply ]