復元/反復

■復元コマンド一覧

 復元関連のコマンドの一覧を、下表に示します。ここには、初期環境での各コマンドの キー機能割り当ても示してあります。これらのコマンドは、初期環境では、 メインメニューの「編集」内にも配置されています。 元に戻す(Undo) と やり直し(Redo) のキー割り当ては、Windows 標準と同じです。

コマンド操作キー機能説明
元に戻す( Undo )Ctrl+Zテキストの内容を変更直前の状態に戻す
やり直し( Redo )Ctrl+Y「元に戻す」を実行する前の状態に戻す
復元点を設定Ctrl+Alt+U現編集状態を復元点に設定する
前の復元点まで元に戻すCtrl+Alt+Z前の「復元点」まで一気に「元に戻す( Undo )」
次の復元点までやり直しCtrl+Alt+Y次の「復元点」まで一気に「やり直す( Redo )」
削除文字列を復帰Ctrl+Alt+D 直前に削除した文字列を「元に戻す」単位で、 現カーソル位置に挿入する(文字列の簡易移動としても利用可)

■復元機能について

 本エディタでは、原則として、編集テキストの内容を変更するどのような編集操作を 行なっても、その実行前の状態に戻せるようになっています。その戻す処理を行なうのが、 「元に戻す( Undo )」コマンドです。

 編集テキストの内容を「元に戻す( Undo )」と、カーソル位置も元に戻りますが、 選択状態は、元に戻りません。

 各種ジャンプや検索でカーソル移動しても、「元に戻す( Undo )」で、 そのカーソル位置を元に戻すことができます。但し、これをできるようにするには、 環境設定の「編集」→「各種編集モード」内の「元に戻す(Undo)の処理」の「ジャンプ元へのカーソル位置の復帰も含める」の指定を ON にしておく必要があります。ちなみに、初期環境では、これは ON になっています。  なお、「カーソル移動」や「画面スクロール」でのカーソル移動は、 「元に戻す( Undo )」の対象にはなりません。但し、「テキスト先頭へ」と 「テキスト末尾へ」のカーソル移動だけは、その対象に含まれます。

 IMEのかな漢字変換で、誤って変換を確定してしまっても、 「元に戻す( Undo )」で、その変換を再度行なえるようになっています。 但し、これをできるようにするには、 環境設定の「編集」→「各種編集モード」内の「元に戻す(Undo)の処理」の「IME(かな漢字変換)の復元も含める」の指定を ON にしておく必要があります。ちなみに、初期環境では、これは ON になっています。

 以上述べた以外の操作(例えば、マーク設定、モード変更、各種ウィンドウ内 表示切り換えなど)は、「元に戻す( Undo )」の対象にはなりません。

 「元に戻す( Undo )」の対象になる操作は、それを復元できるように、 メモリーに記録されていきます。その容量や回数には、特に制限はありません。 但し、実質的には、本エディタがOSから取得できるメモリーの容量に依存します。

 この復元のための記録には、できる限りメモリーを消費しないように設計されていますが、 それでも、編集操作を重ねて行くと、その量はだんだん増えていきます。 各編集テキストにおけるこのメモリー使用量は、「現編集情報表示」コマンドの実行で表示される項目のうちの「復元バッファ」を見れば分かります。 もし、この「復元バッファ」のメモリー使用量があまりにも大きくなっているようなら、 復元バッファをクリアしておく方が良いでしょう。

 復元バッファは、次のどちらかの操作でクリアされます。
  ・「未編集状態に設定」コマンドの実行
  ・現ファイルの「読み込み直し」
また、環境設定「編集」→「各種編集モード」内の「元に戻す(Undo)の処理」の「ファイル保存時にリセットする」の指定を ON にしておくと、現ファイルの保存にも、復元バッファがクリアされます。 なお、初期環境では、この指定は、OFF になっています。

 やり直し( Redo )」は、「元に戻す( Undo )」を 実行する前の状態に戻します。 例えば、
   ABCXYZ
と打ち込んでから、「元に戻す( Undo )」を3回実行すると、編集テキストは、
   ABC
となります。ここで、「やり直し( Redo )」を1回実行すると、
   ABCX
となります。さらに、「やり直し( Redo )」を2回実行すると、
   ABCXYZ
となります。

 「元に戻す( Undo )」を何回か実行した後、何か編集操作等を行なうと、その操作は、 復元バッファに上書き記録されるので、その前に「元に戻した」操作は、 「やり直し( Redo )」できなくなります。例えば、先程と同様に、
   ABCXYZ
と打ち込んでから、「元に戻す( Undo )」を3回実行すると、編集テキストは、
   ABC
となります。ここで、D を打ち込むと、
   ABCD
となります。ここで、「元に戻す( Undo )」を1回実行すると、
   ABC
となります。次に「やり直し( Redo )」を1回実行すると、
   ABCD
となりますが、この時点では、その前に「元に戻した」 XYZ は、「やり直し( Redo )」 できなくなっています。

 初期環境では、「元に戻す( Undo )」と「やり直し( Redo )」は、それぞれ、 Ctrl+Z と Ctrl+Y のキーに機能割り当てされていますが、 IME変換中(変換文字列が表示されている時)、そのキー操作は、 そのIME独自の機能になるので、注意が必要です。 Windows 標準のIMEでは、IME変換中に、うっかり「やり直し( Redo )」のつもりで Ctrl+Y を押すと、少し面倒な状態になります。
 このような状況を考慮して、Ctrl+Y の「やり直し( Redo )」は、操作感覚上できるだけ、 IME変換に絡まないような仕様になっています。 例えば、「さいこう」を「最高」に変換したいのに、「再考」に確定してしまった場合、 Ctrl+Z で、「さいこう」を再変換できる状態に戻りますが、その時、 Ctrl+Z を押すと、そのIME変換は解除されます。そこで、 Ctrl+Y を押しても、そのIME変換が再開されないようになっています。 その場合、「再考」に戻ります。

■復元点までの復元

 「元に戻す(Undo)」や「やり直し(Redo)」を、逐一行なうのではなく、 ある節目まで一気に行なうこともできます。 それには、適当な節目で、「復元点を設定」しておきます。 ある程度編集操作を行なってから、1つ前の節目まで一気に「元に戻す」には、 「前の復元点まで元に戻す」を実行します。これを再度実行すると、 さらにその1つ前の節目まで一気に元に戻ります。 逆に、1つ次の節目まで一気に「やり直し」するには、 「次の復元点までやり直し」を実行します。

 なお、「復元点を設定」の機能は、ご寄付を頂いた方への「特典」になっています。特典がないと、この機能は、本エディタの起動後、 2回までしか実行できません。

■同動作/反動作の反復

 本エディタのコマンドは、任意のキーや、メニュー、あるいは、ツールバー等に割り当てて 実行できますが、なにぶん種類が多いので、なかには、深いメニュー階層や、 押しにくいキーに、割り当てざるをえない場合もあります。 そのようなコマンドを何回も実行するのは、難儀です。 また、仮にメニューの階層が浅くても、それを何回も選んで実行するのは、面倒です。 そのような場合に、
   同じコマンドを再実行
の機能を使うと非常に便利です。これは、初期環境では、Ctrl+\ キーに割り当てられています。 ( この \ キーは、Windows 用の一般的な 109キーボード では、BackSpace キーの左隣のキーで、 右側 Shift キーの左隣のキーではないのでご注意)

 例えば、何箇所かを着色していく場合、その各箇所ごとに範囲選択して「着色化」コマンドを 実行しますが、このコマンドは、初期環境では、若干深いメニュー階層にあるので、これを何回も 実行するのは、大変です。しかし、次のようにすると、簡単に行なえます。

  1. 最初の箇所を範囲選択してメニューから「着色化」コマンドを選んで着色
  2. 次の箇所を範囲選択して Ctrl+\ キー押下(「同じコマンドを再実行」)で着色
  3. その次の箇所を範囲選択して Ctrl+\ キー押下で着色
  4. 以降同様 ...
なお、カーソル移動コマンドは、容易に反復可能なので、「同じコマンドを再実行」の対象には なっていません。また、画面スクロールコマンドも、同様に、対象外です。 さらに、それらと Shift キーを併用した範囲選択の操作も、対象外です。 そのため、上記の例での「同じコマンドを再実行」の対象は、カーソル移動等のコマンドではなく、 「着色化」コマンドになります。もし、各着色箇所に移動して範囲選択する際に、 上記の対象外でないコマンドを実行した場合には、それが「同じコマンドを再実行」の対象に なってしまうので注意が必要です。

 カーソル移動でも、検索や、マーク行などへ移動するコマンドは、「同じコマンドを再実行」の 対象になります。そのため、例えば、メニューから「次のマーク行へ」を選んで実行した後に、 Ctrl+\ キーを押すと、そのたびに、次のマーク行へカーソルが移動していきます。

 本エディタでは、同じコマンドの再実行だけではなく、
   前回と反対のコマンドを実行
の機能も装備しています。これは、初期環境では、Ctrl+^ に割り当てられています。

 ここで、反対のコマンドというのは、反対の動作を行なうコマンドです。 例えば、「次のマーク行へ」移動するコマンドの反対のコマンドは、「前のマーク行へ」移動 するコマンドになります。但し、このような反対の動作がないコマンドもたくさんあります。 「前回と反対のコマンドを実行」ができるのは、あくまで、その反対のコマンドがある場合に 限られます。

 なお、「前回と反対のコマンドを実行」を2回(一般的には偶数回)行なった場合、 反対の反対、つまり、前回と同じコマンドが実行されるのかというと、そうではありません。 あくまで実行されるのは、対象となるコマンドの反対のコマンドです。例えば、 メニューから「次のマーク行へ」を選んで実行すると、それが対象のコマンドになるので、 Ctrl+^ キーを何回押しても、その反対の動作つまり「前のマーク行へ」が行なわれます。