それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

追加コピー。追加切り取り。

先輩が、秀丸で追加コピーしてた。うらやましかった。


それEmEditorでやってみよう。うん。


それEmEditorでもできるよ。

作った。


追加コピーというか、クリップボードをStack化する実装になった。


だって追加コピーだと不便だった。。。
マルチストロークキーがないから。。。

追加コピー.jsee ( Ctrl+C に設定)

var SEPARATOR = "<{#追加コピー}>";
str = clipboardData.getData("Text");
if( str.length > 0 ){
	str += SEPARATOR;
}
str += document.selection.Text;
clipboardData.setData("Text", str );

追加切り取り.jsee ( Ctrl+X に設定)

if( document.selection.IsEmpty ){
	var SEPARATOR = "<{#追加コピー}>";
	str = clipboardData.getData("Text");
	if( str.length > 0 ){
		str += SEPARATOR;
	}
	str += document.selection.Text;
	clipboardData.setData("Text", str );
	document.selection.Text = "";
}

追加貼り付け.jsee (Ctrl+V に設定 )

var SEPARATOR = "<{#追加コピー}>";
str = clipboardData.getData("Text");
if( str.indexOf( SEPARATOR ) > 0 ){
	document.selection.Text = str.substring( 
                               str.lastIndexOf( SEPARATOR )
                             + SEPARATOR.length );
	str = str.substring( 0, str.lastIndexOf( SEPARATOR ) );
}else{
	document.selection.Text = str;
}
clipboardData.setData("Text", str );

*1


うーん。何となく動く。細かいところが変だ。まあこれもまた今度。


マクロがイベント取れたら、もっと柔軟になるんだけどな。ちょっと萌ディタがうらやましいな。

*1:オブジェクトの拡張が出来る理由。http://d.hatena.ne.jp/takuya_1st/20061001/1159733506 で作ったEmEditor組み込み拡張を、ここで再利用している