2012年12月09日

EmEditorマクロ・1行コピー・カット

 他マクロなど、まとめはこちらLink



 EmEditorでちょっとした小技。
 範囲指定していない状態でコピー( Ctrl + Ins )やカット( Shift + Del )をすると、1行コピー・カットをしてくれるが、これだと最後に改行も入ってしまう。
 私は結構、EmEditorで編集してブラウザなどに貼り付ける場合、この改行が邪魔になる事が多い。
 そこで、「改行を省いた1行コピー・カット」のマクロを作ってみた。

// 改行を省く1行コピー
document.selection.EndOfLine
(false,eeLineLogical); // 行末へ
document.selection.StartOfLine
(true,eeLineLogical); // 行頭へ範囲選択
document.selection.Copy
(eeCopyUnicode); // コピー
// 改行を省く1行カット
document.selection.EndOfLine
(false,eeLineLogical); // 行末へ
document.selection.StartOfLine
(true,eeLineLogical); // 行頭へ範囲選択
document.selection.Cut(); // カット
 論理行の行末へ移動 → 行頭までを範囲指定 → コピー・カット。という、キーボード操作と同じ事をやっているだけ。

 でもせっかくだから、ここでマクロの勉強という感じで一工夫してみる。
// 改行を省く1行コピー(置換コピーの方法)
document.selection.SelectLine(); // 1行選択
clipboardData.setData("Text"
, document.selection.Text.replace
(/\r\n/ , "")); // 改行削除してコピー
// 改行を省く1行カット(置換コピーの方法)
document.selection.SelectLine(); // 1行選択
clipboardData.setData("Text"
, document.selection.Text.replace
(/\r\n/ , "")); // 改行削除してコピー
document.selection.Delete(1); // 選択範囲を削除
 Javascriptで置換をする命令「replace」を使って、1行選択した範囲から改行を削除してコピーする方法。ここでコピーとカットの違いは、後で指定範囲を削除するかだけ。

 更に、置換を利用すれば、こういう事も可能。
// 改行を省く1行コピー(コピーしたものを置換)
document.selection.SelectLine(); // 1行選択
document.selection.Copy(eeCopyUnicode); // コピー
clipboardData.setData("Text"
, clipboardData.getData("Text").replace
(/\r\n/ , "")); // 改行を削除
// 改行を省く1行カット(カットしたものを置換)
document.selection.SelectLine(); // 1行選択
document.selection.Cut(); // カット
clipboardData.setData("Text"
, clipboardData.getData("Text").replace
(/\r\n/ , "")); // 改行を削除
 一度コピー・カットしてから、クリップボードの中身を編集する方法。この場合も、置換は1行で書く事ができる。

 やってる事は全部同じ、微妙な違いとして、コピーした時のカーソル位置が違う程度なので、好きなマクロを利用するのがいいと思う。
 本当に小技だけど、それだけでも色々な方法があるという事で書いてみた。




posted by 司隆 at 09:29 | Comment(0) | Computer
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。