「追加コピー・追加切り取り」の版間の差分
ナビゲーションに移動
検索に移動
バージョンの表記を修正 |
改行の除去 |
||
| 2行目: | 2行目: | ||
<br> | <br> | ||
このページの「追加コピー」と「追加切り取り」マクロはクリップボード履歴の 2 件目以降のデータを保持したまま、最新のデータだけを「追加コピー」または「追加切り取り」の結果に置きかえるものです。 | このページの「追加コピー」と「追加切り取り」マクロはクリップボード履歴の 2 件目以降のデータを保持したまま、最新のデータだけを「追加コピー」または「追加切り取り」の結果に置きかえるものです。 | ||
__toc__ | __toc__ | ||
* '''このページの「追加コピー」と「追加切り取り」マクロは <span style="color:#c00;"> Mery 2.8.1 以降 </span> でしか利用できません。''' | * '''このページの「追加コピー」と「追加切り取り」マクロは <span style="color:#c00;"> Mery 2.8.1 以降 </span> でしか利用できません。''' | ||
| 12行目: | 12行目: | ||
* クリップボード履歴に累積しているデータの任意の範囲を「つなげて貼り付け」したい場合は、「[[「クリップボード履歴」メニューのマクロ化|『クリップボード履歴』メニューのマクロ化]]」マクロと「追加コード:『n 番目から m 番目まで貼り付け』」を利用してください。 | * クリップボード履歴に累積しているデータの任意の範囲を「つなげて貼り付け」したい場合は、「[[「クリップボード履歴」メニューのマクロ化|『クリップボード履歴』メニューのマクロ化]]」マクロと「追加コード:『n 番目から m 番目まで貼り付け』」を利用してください。 | ||
== 設定項目 == | == 設定項目 == | ||
; <code>allowCopyLine</code> / <code>allowCutLine</code> | ; <code>allowCopyLine</code> / <code>allowCutLine</code> | ||
* <code>true</code> : 標準コマンドの「コピー」や「切り取り」と同様に、選択範囲がないときにはキャレットのある論理行全体を「追加コピー」または「追加切り取り」します。 (初期値) | * <code>true</code> : 標準コマンドの「コピー」や「切り取り」と同様に、選択範囲がないときにはキャレットのある論理行全体を「追加コピー」または「追加切り取り」します。 (初期値) | ||
* <code>false</code> : 選択範囲がないときには「追加コピー」または「追加切り取り」しません。 | * <code>false</code> : 選択範囲がないときには「追加コピー」または「追加切り取り」しません。 | ||
; <code>appendix</code> | ; <code>appendix</code> | ||
: 「追加コピー」または「追加切り取り」する前からあったクリップボードのテキストと、「追加コピー」または「追加切り取り」したテキストとの間に任意の文字列を挟みこむことができます。<br> | : 「追加コピー」または「追加切り取り」する前からあったクリップボードのテキストと、「追加コピー」または「追加切り取り」したテキストとの間に任意の文字列を挟みこむことができます。<br> | ||
| 26行目: | 23行目: | ||
* <code>" "</code> : 「半角空白」を挟みこむ。 | * <code>" "</code> : 「半角空白」を挟みこむ。 | ||
* <code>"\n"</code> : 「改行」を挟みこむ。 | * <code>"\n"</code> : 「改行」を挟みこむ。 | ||
; <code>allowCollapse</code> (「追加コピー」マクロのみ) | ; <code>allowCollapse</code> (「追加コピー」マクロのみ) | ||
* <code>true</code> : 選択範囲を「追加コピー」後に解除します。 | * <code>true</code> : 選択範囲を「追加コピー」後に解除します。 | ||
* <code>false</code> : 選択範囲を解除しません。 (初期値) | * <code>false</code> : 選択範囲を解除しません。 (初期値) | ||
== ソースコード == | == ソースコード == | ||
* '''ダウンロード >> 「[[ファイル:追加コピー/追加切り取り.zip]]」''' (アイコン入り) | * '''ダウンロード >> 「[[ファイル:追加コピー/追加切り取り.zip]]」''' (アイコン入り) | ||
=== 追加コピー === | === 追加コピー === | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
| 78行目: | 72行目: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 追加切り取り === | === 追加切り取り === | ||
2024年9月9日 (月) 10:07時点における最新版
すでにマクロライブラリ内の「キーアサイン集」のページに「追加コピー」と「追加切り取り」マクロがありますが、クリップボード履歴に「追加コピー (切り取り)」前/後のアイテムが累積されていき、ばあいによってはクリップボード履歴を無駄に圧迫することになってしまいます。
このページの「追加コピー」と「追加切り取り」マクロはクリップボード履歴の 2 件目以降のデータを保持したまま、最新のデータだけを「追加コピー」または「追加切り取り」の結果に置きかえるものです。
- このページの「追加コピー」と「追加切り取り」マクロは Mery 2.8.1 以降 でしか利用できません。
- Mary Ver 2.8.0 以前、または「追加コピー」や「追加切り取り」ごとにクリップボード履歴にデータを累積させていきたい場合は、「キーアサイン集」の「追加コピー」と「追加切り取り」を利用してください。
- たぶん Windows OS のクリップボードには「追加コピー」前/後のデータが累積されていきます…。(未確認)
- クリップボード履歴に累積しているデータの任意の範囲を「つなげて貼り付け」したい場合は、「『クリップボード履歴』メニューのマクロ化」マクロと「追加コード:『n 番目から m 番目まで貼り付け』」を利用してください。
設定項目[編集]
allowCopyLine/allowCutLine
true: 標準コマンドの「コピー」や「切り取り」と同様に、選択範囲がないときにはキャレットのある論理行全体を「追加コピー」または「追加切り取り」します。 (初期値)false: 選択範囲がないときには「追加コピー」または「追加切り取り」しません。
appendix- 「追加コピー」または「追加切り取り」する前からあったクリップボードのテキストと、「追加コピー」または「追加切り取り」したテキストとの間に任意の文字列を挟みこむことができます。
【例】
"": なにも付加しない。 (初期値)" ": 「半角空白」を挟みこむ。"\n": 「改行」を挟みこむ。
allowCollapse(「追加コピー」マクロのみ)
true: 選択範囲を「追加コピー」後に解除します。false: 選択範囲を解除しません。 (初期値)
ソースコード[編集]
- ダウンロード >> 「ファイル:追加コピー/追加切り取り.zip」 (アイコン入り)
追加コピー[編集]
#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() );
}
追加切り取り[編集]
#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 = "ドキュメントは書きかえ禁止です。"; }
スポンサーリンク