「
追加コピー・追加切り取り
」を編集中
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
すでにマクロライブラリ内の「[[キーアサイン集]]」のページに「追加コピー」と「追加切り取り」マクロがありますが、クリップボード履歴に「追加コピー (切り取り)」前/後のアイテムが累積されていき、ばあいによってはクリップボード履歴を無駄に圧迫することになってしまいます。 <br> このページの「追加コピー」と「追加切り取り」マクロはクリップボード履歴の 2 件目以降のデータを保持したまま、最新のデータだけを「追加コピー」または「追加切り取り」の結果に置きかえるものです。 __toc__ * '''このページの「追加コピー」と「追加切り取り」マクロは <span style="color:#c00;"> Mery 2.8.1 以降 </span> でしか利用できません。''' : Mary Ver 2.8.0 以前、または「追加コピー」や「追加切り取り」ごとにクリップボード履歴にデータを累積させていきたい場合は、「キーアサイン集」の「[[キーアサイン集#追加コピー|追加コピー]]」と「[[キーアサイン集#追加切り取り|追加切り取り]]」を利用してください。 * たぶん Windows OS のクリップボードには「追加コピー」前/後のデータが累積されていきます…。(未確認) * クリップボード履歴に累積しているデータの任意の範囲を「つなげて貼り付け」したい場合は、「[[「クリップボード履歴」メニューのマクロ化|『クリップボード履歴』メニューのマクロ化]]」マクロと「追加コード:『n 番目から m 番目まで貼り付け』」を利用してください。 == 設定項目 == ; <code>allowCopyLine</code> / <code>allowCutLine</code> * <code>true</code> : 標準コマンドの「コピー」や「切り取り」と同様に、選択範囲がないときにはキャレットのある論理行全体を「追加コピー」または「追加切り取り」します。 (初期値) * <code>false</code> : 選択範囲がないときには「追加コピー」または「追加切り取り」しません。 ; <code>appendix</code> : 「追加コピー」または「追加切り取り」する前からあったクリップボードのテキストと、「追加コピー」または「追加切り取り」したテキストとの間に任意の文字列を挟みこむことができます。<br> 【例】 * <code>""</code> : なにも付加しない。 (初期値) * <code>" "</code> : 「半角空白」を挟みこむ。 * <code>"\n"</code> : 「改行」を挟みこむ。 ; <code>allowCollapse</code> (「追加コピー」マクロのみ) * <code>true</code> : 選択範囲を「追加コピー」後に解除します。 * <code>false</code> : 選択範囲を解除しません。 (初期値) == ソースコード == * '''ダウンロード >> 「[[ファイル:追加コピー/追加切り取り.zip]]」''' (アイコン入り) === 追加コピー === <syntaxhighlight lang="javascript"> #title = "追加コピー" #tooltip = "追加コピー" // #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",214 // #icon = "copy_plus.ico" /** * sukemaru (2020/04/23 - 2020/06/05) * Ver 2.8.1 以降用「追加コピー」 * ※ クリップボード履歴に累積させずに、最新のデータに上書きで追加コピーする * (クリップボード履歴の 2 件目以降のデータを保持) */ // ---------- ▼ 設定項目 ▼ ---------- // // ■ 選択範囲がないときは論理行全体を追加コピーする var allowCopyLine = true; // true 行コピーする / false 行コピーはしない // ■ 追加コピー後に選択範囲を解除する(範囲選択していたときのみ) var allowCollapse = false; // true 解除する / false 解除しない // ■ 追加コピーするテキストの前に付加する文字列 var appendix = ""; // 半角空白 → " " / 改行 → "\n" // ---------- ▲ 設定項目 ▲ ---------- // var d = editor.ActiveDocument, s = d.selection; var line = d.GetLine( s.GetActivePointY( mePosLogical ), meGetLineWithNewLines ); var str = s.Text ? s.Text : ( allowCopyLine && line ? line : "" ); appendix = appendix || ""; if ( str ) { var cb = ClipboardData; var oldData = cb.GetData( 0 ) || cb.GetData() || ""; cb.ClearData( 0 ); cb.SetData( oldData + appendix + str ); } if ( s.Text && allowCollapse ) { s.SetActivePos( s.GetActivePos() ); } </syntaxhighlight> === 追加切り取り === <syntaxhighlight lang="javascript"> #title = "追加切り取り" #tooltip = "追加切り取り" // #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",213 // #icon = "cut_plus.ico" /** * sukemaru (2020/06/05) * Ver 2.8.1 以降用「追加切り取り」 * ※ クリップボード履歴に累積させずに、最新のデータに上書きで追加切り取りする * (クリップボード履歴の 2 件目以降のデータを保持) */ // ---------- ▼ 設定項目 ▼ ---------- // // ■ 選択範囲がないときは論理行全体を「追加切り取り」する var allowCutLine = true; // true 行切り取りする / false 行切り取りはしない // ■ 「追加切り取り」するテキストの前に付加する文字列 var appendix = ""; // 半角空白 → " " / 改行 → "\n" // ---------- ▲ 設定項目 ▲ ---------- // var d = editor.ActiveDocument, s = d.selection; if ( ! d.ReadOnly ) { if ( s.IsEmpty && allowCutLine ) { s.SelectLine(); } var str = s.Text; appendix = appendix || ""; if ( str ) { var cb = ClipboardData; var oldData = cb.GetData( 0 ) || cb.GetData() || ""; cb.ClearData( 0 ); cb.SetData( oldData + appendix + str ); } s.Delete(); } else { Status = "ドキュメントは書きかえ禁止です。"; } </syntaxhighlight>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク