【要望】アンドゥ/リドゥ関連

  1. 【要望】アンドゥ/リドゥ関連
    手になじむエディターで大変重宝しています。
    要望が2点ありまして、ご対応いただければうれしいです。

    【手入力時が1文字単位】
    たいていのアプリケーションは、漢字変換の確定ごとに区切りをつけて、ある程度の塊でアンドゥ/リドゥを行いますが、Meryは1文字単位です。
    たとえば、辞書に登録した短縮入力やGoogle日本語入力のサジェストで、「お忙しいとは思いますが、以上、ご検討をよろしくお願いします。」などとうっかり誤入力してしまうと、1文字ずつ削るはめになります(そしてたまに勢い余って削り過ぎたり)。そのたびに、アンドゥで一発で消せたらなあ、と思っています。

    【内容の変更を示すアスタリスク】
    内容が変更されるとドキュメントの末尾にアスタリスク(*)が付きますが、アンドゥ/リドゥ時に、保存した時点と一致したときのみ非表示にできないでしょうか。
    保存、アンドゥ、リドゥを繰り返していると、「あれ?今、保存時点まで戻したんだっけ?」となることがあるので。

    あと、マクロリファレンスで気づいた点があったのでご報告を。
    Slection インターフェイスの項目で、SetAnchorPoint メソッドの説明が「選択範囲の開始位置を取得します」となっていますが、「取得」ではなく「設定」ではないでしょうか。

    お忙しいとは思いますが、以上、ご検討をよろしくお願いします。

     |  名無しさん  |  返信
  2. Mery をご愛用くださりありがとうございます。

    > 【要望】アンドゥ/リドゥ関連

    鋭いご指摘ですね。
    私も Mery 開発当時はこの仕様に関して悩んだものですが、誤って入力してしまった時にズバッと全部もとに戻せる気持ち良さと、途中でちょっと間違えちゃったテヘペロぐらいの時に 1 文字ずつ戻せるメリットを比べて後者を優先した仕様になっております。

    確かに、Mery が目指すところの Windows 標準っぽいエディタ、という話からすると Windows のメモ帳の標準的な動作はアンドゥしたら全部戻す!ってことになっているようですが、これはアンドゥが 1 回しかできないからゆえの仕様であると認識しております。アンドゥが何度でもできる (Mery のアンドゥは無制限です) のであればまとめて戻すよりも 1 文字ずつ戻すことができた方がメリットが大きいと考えておる次第です。

    > 【内容の変更を示すアスタリスク】

    なるほどですね。
    これはその方が理にかなっている気はしますね。最後に保存した状態が正とする。ふむふむ。
    現在の仕様だと最初にファイルを開いた状態が正、ってことになってますね。

    ファイルを開いて編集すると * が付き、保存すると * が消え、さらに続けて編集すると * が付き、さっき保存した時点まで元に戻したら * が消え、そしてそして最初にファイルを開いた時点まで戻すと逆に * が付く。

    素敵かもしれません。検討してみます。

    > Slection インターフェイスの項目で、SetAnchorPoint メソッドの説明が「選択範囲の開始位置を取得します」となっていますが、「取得」ではなく「設定」ではないでしょうか。

    コピペによる誤字ですね。
    ご指摘ありがとうございます、Wiki にログインする元気が出てき次第修正しておきます。(管理者のパスワードが覚えられないのでログインするのが面倒くさいんです、というこちらの事情はオフレコで)

     |  Kuro  |  返信
  3. Undo/Redo 時に、
    ・保存済みファイルと比較して同じならマークを消す
    ・連続した入力,削除をまとめて処理
    するマクロを用意してみました.お試しください.
    http://www.haijin-boys.com/wiki/少し便利な_Undo/Redo

    ただし標準の Undo/Redo に比べてかなり重い上,頓珍漢な一括判定する場合もあるので,元々の Undo/Redo もショートカットに残しておくことをおすすめします.

    # 久しぶりに面白いマクロを組めました

     |  ks  |  返信
  4. 書き忘れましたが,
    > ・連続した入力,削除をまとめて処理
    は標準で無効にしています.
    有効にする場合は,マクロ中の IsSequence を true にしてください.

     |  ks  |  返信
  5. この短期間でしかもマクロで実装されてしまうなんですごすぎます!

    > ・保存済みファイルと比較して同じならマークを消す
    > ・連続した入力,削除をまとめて処理

    早速試させていただきました。
    特に一括 Undo はマクロのみで実装できるなんて思いませんでした。本体側を直すとなるとかなり奥深いところに手を入れなきゃならないのでかなり大変だと思われます。

    「保存済みファイルと比較して同じならマークを消す」は、そうなんですよね、この動作!一般的なテキストエディタではこの動作を採用しているケースが多いですが、何も編集していない状態で上書き保存が使えないんですよね。それがどうも手に馴染まなかったので Mery は何も編集していない状態でも「上書き保存」できるような逃げ道を残すために現在の仕様に至ったのでした。

    「a」とかを適当に打って CTRL + Z で元に戻して上書き保存、って個人的にはよく使うのですが…
    (タイムスタンプのみ更新したい時とか、共有しているファイルが俺が正しい!と強制上書き保存する時とか)

    あと、マクロリファレンスの方は修正しておきました。

     |  Kuro  |  返信
スポンサーリンク