「最後に編集した箇所へ移動」機能について

  1. お世話になっております。いつもMeryを愛用させて頂いております。

    「最後に編集した箇所へ移動」機能について、要望を提出させて下さい。

    この機能は
    通常の検索や「前/次の文字列を検索」を回して俯瞰している間などに
    すぐに作業箇所に戻れて大変便利なのですが、
    そうして大元の作業箇所からジャンプしている時に
    修正しなければならない箇所に遭遇して修正を加えてしまった瞬間に
    元の場所に戻れなくなってしまうのが
    (仕方がないものだとは分かっているのですが)
    もどかしく感じてしまいます。

    編集が挟まれると以前の編集箇所がずれる可能性はあるので
    完全には無理だという事は承知しておりますが、
    3ステップか4ステップでも、以前の編集箇所「付近」へ、
    この方法で編集箇所を遡れると
    大変便利だなと思った次第です。

    エディタの本体的な機能ではない冗長機能な上に
    機能の完全性担保が困難かもしれないため
    弱い要望として提出させて頂きたく思います。

    よろしくお願いします

     |  mk  |  返信
  2. 横から失礼します。
    > 大元の作業箇所からジャンプしている時に
    > 修正しなければならない箇所に遭遇して修正を加えてしまった瞬間に
    > 元の場所に戻れなくなってしまう
    「修正しなければならない箇所に」加える修正が undo でない前提となりますが、私の場合はジャンプ用の一時的な足場としてブックマークをつけておいて「ブックマーク一覧ジャンプ」マクロで行き来できるようにしています。
    運用するにあたって、修正内容が undo だと undo まえに復帰用につけたブックマークが消えてしまうので十全な方法ではありませんが、「少し便利な Undo/Redo」マクロ、クリップボード履歴(ツールメニューにあります)とコピー/ペースト操作を組み合わせてやり繰りすれば、割となんとかなるかんじです。 :)
    「少し便利な Undo/Redo」マクロの利用にあたっては「includeライブラリ」の導入が必要になりますが、扱いの難しいものではありませんので、導入されるとよろしいかと(includeライブラリを導入したあかつきには、ブックマークジャンプマクロも「include版」をご利用くださいませ)。

    ベータ版をお使いなら、編集カテゴリの「前の変更行」「次の変更行」という標準機能を右クリックメニューに組み込むかショートカットキー割り当てするとよいかもしれません。
    ただし、この機能は編集履歴を順にたどる機能ではなく、「変更行」としてマーキングされている行を行番号順にジャンプする機能なので、未保存で変更行がたくさんあるときにはねらった場所にジャンプする目的では使いづらいかも…。

    当座のご参考までに。

     |  sukemaru  |  返信
  3. 「最後に編集した位置へ移動」もベータ版 2.6.9 からの機能ですね。
    ベータ版 2.6.12 で追加された「前の変更行」「次の変更行」は、右クリックメニューのカスタマイズやキーボードショートカットの設定で「編集」カテゴリのアイテムをドロップダウンすると見つけられるとおもいます。

     |  sukemaru  |  返信
  4. > 「前の変更行」「次の変更行」
    おおお、この機能でほぼ対応できそうです、有り難うございます!

     |  mk  |  返信
  5. >> sukemaru さん
    サポートのご協力ありがとうございます。
    最近すっごいご意見・ご要望が多くて、目が回りそうです。土日もほぼ Mery…。sukemaru さんのおかげで助かりました。

    >> mk さん
    ご意見ありがとうございます。
    「前の変更行」「次の変更行」で対応できそうとのことで良かったです。

    編集履歴をたどって過去の編集箇所に順番にジャンプしていく機能は以前にご要望を頂いたことがありますが、mk さんのおっしゃる通り実装が非常に難しいので、そのご要望を頂いたかたと相談したのです。

    そうすると、「いやいや、編集した順番なんていちいち覚えてないから、普通に上の変更箇所、下の変更箇所のほうが使いやすい」というご意見で、現在の仕様となりました。

    ちなみに「最後に編集した箇所へ移動」機能は、オマケです。

     |  Kuro  |  返信
  6. 横から失礼します。

    例えばですが、関数の使用箇所、関数の定義場所とかを行き来しているときに、
    確かに、気軽にジャンプ前の箇所を探せると便利ですね。

    そういえば、サクラを使っていた時は、そういう機能「SearchStartPos」というのを使っていました。面倒かもしれませんが、実装されると嬉しいです。

     |  tak  |  返信
  7. そうですね。ちょっとご希望の機能とは異なりますが、関数の使用箇所と定義箇所を行き来するとき、私は Ctrl + Shift + ↑ と Ctrl + Shift + ↓ を活用しています。

    文字を選択していない状態でもキャレット付近の単語で上に検索、下に検索できる機能なので、何度か連打しないといけないこともありますが、結構使えますよ。

     |  Kuro  |  返信
  8. > 例えばですが、関数の使用箇所、関数の定義場所とかを行き来しているときに、
    > 確かに、気軽にジャンプ前の箇所を探せると便利ですね。
    includeライブラリの IO.js とかで JSON に書き出すコードをつくれば、わりと簡単に実現できちゃいそう?
    ただ、ファイルごとに「位置」を保存するとなると、JSON は肥大化する一方になりそうな気もするのでどうなんでしょうね。

    私が作るとしたら GetKeyState で修飾キーの組み合わせで「位置の保存」と「復帰」をひとまとめにしちゃうかもですが(マクロの登録数と処理速度のトレードオフ?)、個人的には「検索ジャンプ」で自己解決しちゃってます。

     |  sukemaru  |  返信
  9. > > 例えばですが、関数の使用箇所、関数の定義場所とかを行き来しているときに、
    > > 確かに、気軽にジャンプ前の箇所を探せると便利ですね。
    > includeライブラリの IO.js とかで JSON に書き出すコードをつくれば、わりと簡単に実現できちゃいそう?
    ものは試しということで「次/前の文字列を検索」コマンドをベースにしたマクロと位置復帰用のマクロを起こしてみました。

    が、いざ書いてみると、保存した位置よりも「前の文字列」を再編集・変更した場合、「保存された位置の文字列」が保存された情報と一致しなくなるから復帰できなっちゃうじゃん。ということに気が付いて…。 X(
    位置情報を保存するためのコードをおもいついたので「簡単だろう」とたかをくくっていたのですが、復帰のほうは思いのほかに厄介ですね。

    位置復帰用のマクロには「それなりに」代替処理も組み込んでおきましたので、お試しいただける方がいましたら、どうぞ。 :)
    https://www.haijin-boys.com/wiki/位置情報を保存してから「次の文字列を検索」#メモ

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