「矩形選択範囲の各行先頭に文字挿入」の版間の差分
ナビゲーションに移動
検索に移動
URLの修正 |
ソースコードを修正 |
||
| (同じ利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
このマクロは[https://www.haijin-boys.com/software/mery/mery-3-0-0#15 Mery Ver 3.0.0]で追加された「矩形選択における文字の入力・削除を各行に対して操作する」と同機能です。 | |||
== 概要 == | == 概要 == | ||
| 14行目: | 14行目: | ||
== ソースコード == | == ソースコード == | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript" copy> | ||
#title = "矩形選択範囲の各行先頭に文字挿入" | #title = "矩形選択範囲の各行先頭に文字挿入" | ||
// ステータスバー初期化 | // ステータスバー初期化 | ||
Status = "" | Status = ""; | ||
// 矩形選択判定 | // 矩形選択判定 | ||
var s = | var s = document.selection; | ||
var isBoxed = (s.GetBottomPointY(mePosView) - s.GetTopPointY(mePosView)) != (s.Text.match(/\n/g) || []).length; | var isBoxed = (s.GetBottomPointY(mePosView) - s.GetTopPointY(mePosView)) != (s.Text.match(/\n/g) || []).length; | ||
if (isBoxed) { | if (isBoxed) { | ||
var Ptr = "^"; | |||
var Rep = Prompt("挿入する文字列", "").replace(/\\/g, "\\\\"); | |||
// 挿入文字が空ではない場合のみ、置換実行 | |||
if (Rep) { | |||
document.selection.Replace(Ptr, Rep, meFindReplaceRegExp + meReplaceSelOnly + meReplaceAll); | |||
editor.ActiveDocument.HighlightFind = false; | |||
} | |||
} else { | } else { | ||
Status = "矩形選択がされていません。"; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2026年9月10日 (木) 06:06時点における最新版
このマクロはMery Ver 3.0.0で追加された「矩形選択における文字の入力・削除を各行に対して操作する」と同機能です。
概要[編集]
- 矩形選択後にこのマクロを実行すると、矩形選択範囲の各行先頭に文字挿入をすることができます。
- つまりサクラエディタで言うところの、Alt + 上下矢印キー入力後に文字入力を行うような動作を実現できます。
- ショートカットキーに割り当てて使うと便利です。私は Ctrl + I に割り当てています。
注意事項[編集]
Mery Ver 2.6.7 現在、矩形選択時の置換バグにより、余計な半角スペースが入ることがあります。
https://www.haijin-boys.com/discussions/3548
しかし発生条件的に、そこそこのレアケースだと思いますので、大概は問題なく動きます。
ソースコード[編集]
#title = "矩形選択範囲の各行先頭に文字挿入"
// ステータスバー初期化
Status = "";
// 矩形選択判定
var s = document.selection;
var isBoxed = (s.GetBottomPointY(mePosView) - s.GetTopPointY(mePosView)) != (s.Text.match(/\n/g) || []).length;
if (isBoxed) {
var Ptr = "^";
var Rep = Prompt("挿入する文字列", "").replace(/\\/g, "\\\\");
// 挿入文字が空ではない場合のみ、置換実行
if (Rep) {
document.selection.Replace(Ptr, Rep, meFindReplaceRegExp + meReplaceSelOnly + meReplaceAll);
editor.ActiveDocument.HighlightFind = false;
}
} else {
Status = "矩形選択がされていません。";
}
スポンサーリンク