「すべて戻す」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Sukemaru (トーク | 投稿記録)
修正版。ZIP書庫を追加。
MSY-07 (トーク | 投稿記録)
改行の除去
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
__toc__
__toc__
<br>
以下のマクロは、いずれもループ処理で Undo 操作を連続実行させるものなので、「無限ループ」防止のために「3秒」の初期値で制限時間を設定してあります。
以下のマクロは、いずれもループ処理で Undo 操作を連続実行させるものなので、「無限ループ」防止のために「3秒」の初期値で制限時間を設定してあります。
<br><br>
 
※ 完全に元に戻りきらなかった場合は、念のためもう一度実行してみてください。
※ 完全に元に戻りきらなかった場合は、念のためもう一度実行してみてください。
<br><br>
 
<div class="warningbox">
<div class="warningbox">
Mery で開いたまま他のエディタなどで編集・上書き保存してから Mery 側での「'''読み直しますか?'''」の確認ダイアログで「はい」を選んで読み直ししてしまった場合には元に戻すことができません。
Mery で開いたまま他のエディタなどで編集・上書き保存してから Mery 側での「'''読み直しますか?'''」の確認ダイアログで「はい」を選んで読み直ししてしまった場合には元に戻すことができません。
</div>
</div>
<br>


== ダウンロード ==
== ダウンロード ==
15行目: 13行目:
:* もっとたくさん元に戻す.js
:* もっとたくさん元に戻す.js


== すべて戻す ==
最後に保存したときの状態まで「元に戻す (Undo)」を連続試行します。


== すべて戻す ==
[ファイル] メニュー >> [読み直し] >> [自動選択] するのと同じ結果になるとおもいますが、このマクロで元に戻した内容は「やり直し (Redo)」可能です。


最後に保存したときの状態まで「元に戻す (Undo)」を連続試行します。<br><br>
また、このマクロは『無題』タブでも利用できます。
[ファイル] メニュー >> [読み直し] >> [自動選択] するのと同じ結果になるとおもいますが、このマクロで元に戻した内容は「やり直し (Redo)」可能です。<br>
また、このマクロは『無題』タブでも利用できます。<br>
<br>


; ソースコード
; ソースコード
<source lang="javascript">
<syntaxhighlight lang="javascript">
#title  = "すべて戻す"
#title  = "すべて戻す"
#tooltip = "最後に保存したときの状態まで戻す"
#tooltip = "最後に保存したときの状態まで戻す"
47行目: 44行目:
Status = " ... " + undoCount + " 回 UNDO しました。  [ "
Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
</source>
</syntaxhighlight>
<br>


== もっとたくさん元に戻す ==
== もっとたくさん元に戻す ==
 
「最後に保存したときの状態」よりも前の「Mery で開いたときの状態」まで元に戻したい場合は、こちらのマクロをご利用ください。
「最後に保存したときの状態」よりも前の「Mery で開いたときの状態」まで元に戻したい場合は、こちらのマクロをご利用ください。<br>
<br>


; ソースコード
; ソースコード
<source lang="javascript">
<syntaxhighlight lang="javascript">
#title = "もっとたくさん元に戻す"
#title = "もっとたくさん元に戻す"
#tooltip = "Mery で開いたときの状態まで元に戻す"
#tooltip = "Mery で開いたときの状態まで元に戻す"
80行目: 74行目:
Status = " ... " + undoCount + " 回 UNDO しました。  [ "
Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
</source>
</syntaxhighlight>
<br>


== メモ ==
== メモ ==
このマクロは、「[[コンパクトメニュー]]」マクロ用の独自コマンドとしてつくった機能を単独マクロとして改編したものです。 単独版の「すべて戻す」マクロにするにあたり、制限時間を任意に変更するための設定項目を追加してあります。
このマクロは、「[[コンパクトメニュー]]」マクロ用の独自コマンドとしてつくった機能を単独マクロとして改編したものです。 単独版の「すべて戻す」マクロにするにあたり、制限時間を任意に変更するための設定項目を追加してあります。
<br><br>
-----
-----
*2021/01/20
*2021/01/20
:制限時間の設定値が反映されず3秒固定になってしまっていたミスを修正。
:制限時間の設定値が反映されず3秒固定になってしまっていたミスを修正。

2024年9月9日 (月) 14:17時点における最新版

以下のマクロは、いずれもループ処理で Undo 操作を連続実行させるものなので、「無限ループ」防止のために「3秒」の初期値で制限時間を設定してあります。

※ 完全に元に戻りきらなかった場合は、念のためもう一度実行してみてください。

Mery で開いたまま他のエディタなどで編集・上書き保存してから Mery 側での「読み直しますか?」の確認ダイアログで「はい」を選んで読み直ししてしまった場合には元に戻すことができません。

ダウンロード[編集]

ダウンロード >> 「ファイル:すべて戻す.zip」(アイコン入り)

  • すべて戻す.js
  • もっとたくさん元に戻す.js

すべて戻す[編集]

最後に保存したときの状態まで「元に戻す (Undo)」を連続試行します。

[ファイル] メニュー >> [読み直し] >> [自動選択] するのと同じ結果になるとおもいますが、このマクロで元に戻した内容は「やり直し (Redo)」可能です。

また、このマクロは『無題』タブでも利用できます。

ソースコード
#title   = "すべて戻す"
#tooltip = "最後に保存したときの状態まで戻す"
// #icon = "undo_more.ico"

// ---------- ▼ 設定項目 ▼ ----------

// ■ 「無限ループ」防止のため制限時間
var limit = 3000;	// 単位: ミリ秒

// ---------- ▲ 設定項目 ▲ ----------

var d = editor.ActiveDocument;
var undoCount = 0,  restart = new Date(),  elpased;
limit = ( limit > 0 ) ? limit : 3000;

do {
  d.Undo();  undoCount ++;
  elpased = new Date() - restart;	// 経過時間(ミリ秒)
} while ( ! d.Saved && elpased < limit );

Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";

もっとたくさん元に戻す[編集]

「最後に保存したときの状態」よりも前の「Mery で開いたときの状態」まで元に戻したい場合は、こちらのマクロをご利用ください。

ソースコード
#title = "もっとたくさん元に戻す"
#tooltip = "Mery で開いたときの状態まで元に戻す"
// #icon = "restore[5].ico"

// ---------- ▼ 設定項目 ▼ ----------

// ■ 「無限ループ」防止のため制限時間
var limit = 3000;	// 単位: ミリ秒

// ---------- ▲ 設定項目 ▲ ----------

var d = editor.ActiveDocument;
var undoCount = 0,  restart = new Date(),  elpased;
limit = ( limit > 0 ) ? limit : 3000;

d.Saved = false;
do {
  d.Undo();  undoCount ++;
  elpased = new Date() - restart;	// 経過時間(ミリ秒)
} while ( elpased < limit );

Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";

メモ[編集]

このマクロは、「コンパクトメニュー」マクロ用の独自コマンドとしてつくった機能を単独マクロとして改編したものです。 単独版の「すべて戻す」マクロにするにあたり、制限時間を任意に変更するための設定項目を追加してあります。


  • 2021/01/20
制限時間の設定値が反映されず3秒固定になってしまっていたミスを修正。
スポンサーリンク