2010年7月24日土曜日

Meadow で Undo, やり直し

一般的なアプリケーションにおける「元に戻す」「やり直す」

Windows や Mac の一般的なアプリーケーションにおける 「元に戻す」「やり直し」の操作は、

Windows 7 のショートカット キー

Ctrl + Z 元に戻す
Ctrl + Y 操作をやり直す

 Mac OS X のキーボードショートカット

command + Z 前のコマンドの取り消し
shift + command + Z 前のコマンドのやり直し

しかし、操作を 「やり直す」 ということが滅多にないので、これにショートカットキー Ctrl + Y が付けられていることを長いこと知らなかった。 ^^; 友人から「初心者向け PC の検定問題にあった」と聞いて、はじめてそんなキーが割り当てられていることに気づかされ、「使わない機能に対しては、その存在すら意識が向かないものだなぁ」とつくづく感じた。いや、しかし、Mac 使ってたときは上記のショートカットキーを使っていたような気もするんだけれど。。

img07-24-2010[1]

それはともかく、

元に戻す  >>  元に戻す  >>  元に戻す

によって行なった操作は、

やり直し  >>  やり直し  >>  やり直し

により、また元の状態に戻る。

 

Meadow の Undo

Meadow で操作を「元に戻す」には、

C-/

Undo の `u’ の字が割り当てられているキー操作を使うなら、

C-x u

 

操作の繰り返し

元に戻す操作を繰り返したいとき、上記 C-x u を連続して入力するのは面倒なので、

C-x z

と組み合わせる。 2.2 ファイルの作成,編集 によると、

バッファに対して何らかの編集作業を行った後,その作業を繰り返す場合には, C-x zを入力します.これにより,前に行った作業を反復して実行できます.このように操作の反復を行うことを``Redo''といいます.Redoを繰り返すことによって,作業を効率的に行えます.なお,C-x zは,一度実行した後は zを押すだけで繰り返しを行えます.Undoと組み合わせることで,一度取り消した作業を再びやり直すUndoを繰り返し行うなどの作業を行えます.

(太字は引用者による)

つまり、 EmacsWiki: Category Undo で述べられているように、

Having once undone a change with ‘C-x u’ or `C-_’, you can repeat the undo command by pressing ‘C-x z’, which is ‘repeat’. So the overall sequence of C-x u C-x z z z z z undoes changes back through time, and may be easier to type than `C-_ C-_ …’.

(太字は引用者による)

 

やり直し

これに対して、「やり直す」操作は、

一般のWindowsアプリのundoのつもりで使ってると混乱するんですよ。

具体的には「undo:ひとつ前のコマンドを取り消す」なんですが、「undo」自体もコマンドと認識されるので、undoコマンドでundoをundo できるっていう(※連続してundoしてるかぎりは直前のundoがundoされることはない)。つまり一般的なアプリでいうところのredoをundo コマンドひとつでやってしまうっていう。慣れたら便利だけど慣れないときもい。

(080525(Sun) emacsメモその2・undo/redo編 - BKCのBの方 より)

例えば、間違えて 

C-/

により Undo し過ぎたら、

C-g

を入力して、再び

C-/

を入力する。

つまり、

C-/   >>   C-/   >>   C-/

によって行なった操作は、

C-g   >>   C-/   >>   C-/   >>   C-/

により、また元の状態に戻る。

 

参考サイト

Key Index - GNU Emacs Manual