◀一般トップへ
  • 5046 diffの差分移動
    • 5048 Re:diffの差分移動
      • 5049 Re2:diffの差分移動
        • 5050 Re3:diffの差分移動
          • 5074 Re4:diffの差分移動
            • 5075 Re5:diffの差分移動
              • 5076 Re6:diffの差分移動
  • [5046] diffの差分移動 かて 2006年02月21日 14:13

    diffで差分を表示させて、『次の差分へ』『前の差分へ』で移動した場合、
    現在のバージョンでは連続して追加された行でも1行ずつ移動するようになっていると思いますが、
    これを差分のブロック単位で移動できる方法はありますでしょうか?

    例えば、連続して10行追加されていた場合には、その10行を一つのブロックとして『次の差分へ』で移動した時に一気に飛ばしたい、ということです。

    宜しくお願いします。
    • [5048] Re:diffの差分移動 DLできん 2006年02月21日 23:32

      それ欲しいときありますが、ソース修正が必要でしょう。
      (マークに登録しちゃうとかすれば簡単な修正でいけそう)

      #人気のパッチをeGroupsに置いちゃうと、ダウンロード制限
      に引っかかっちゃいますYO!

      • [5049] Re2:diffの差分移動 maru 2006年02月22日 00:13

        なるほど、確かに便利そうですね。
        マクロで妥協できるなら、

        ' DiffNextBlock.vbs From Here --------------------------
        Do
        lngBefore = ExpandParameter("$y")
        DiffNext()
        Loop While CLng(lngBefore) + 1 = CLng(ExpandParameter("$y"))
        ' DiffNextBlock.vbs To Here --------------------------

        「前の差分へ」の動作はどんな動きを期待したらよいのでしょう?
        下記例は、連続したブロックの各先頭を探します。
        つまり「次の差分へ」での移動位置を、逆順にたどる方式。
        それとも連続したブロックの下端が必要でしょうか?
        ' DiffPrevBlock.vbs From Here -------------------------------
        Call Main
        Sub Main
        lngBefore = ExpandParameter("$y")
        DiffPrev()
        If CLng(lngBefore) = CLng(ExpandParameter("$y")) Then Exit Sub

        Do While (1)
        lngBefore = ExpandParameter("$y")
        DiffPrev()
        Select Case CLng(ExpandParameter("$y"))
        Case CLng(lngBefore)
        Exit Sub
        Case CLng(lngBefore) - 1
        Case Else
        DiffNext()
        Exit Do
        End Select
        Loop
        End Sub
        ' DiffPrevBlock.vbs To Here -------------------------------
        • [5050] Re3:diffの差分移動 じゅうじ 2006年02月22日 05:41

          ▼ maruさん
          もうすぐ、3月の予感です。

          問題なければ、逆順がいい。普通、
          下のキーを押したら、上のキーを押したくなる、その時、元の場所に戻ったほうがいい。
          • [5074] Re4:diffの差分移動 かて 2006年03月06日 15:51

            >maruさん
            遅くなりましたが、マクロを登録して実行してみたところ、ブロック単位で移動してくれるようになり、大変満足しています。
            ありがとうございました。

            自分なりにさらに使いやすくしようと思い、マクロの最後に
            『カーソル行をウィンドウの中央へ』
            のコマンドを追加しようと思ったのですが、
            CurLineCenter();
            ではうまくいきません。

            どなたか、どうすればよいか教えて頂けませんでしょうか?
            よろしくお願いします。
            • [5075] Re5:diffの差分移動 maru 2006年03月07日 01:36

              ' DiffNextBlock.vbs From Here --------------------------
              Do
              lngBefore = ExpandParameter("$y")
              DiffNext()
              Loop While CLng(lngBefore) + 1 = CLng(ExpandParameter("$y"))
              CurLineCenter()
              ' DiffNextBlock.vbs To Here --------------------------

              再現しませんね・・・。もしかしてセミコロン。
              • [5076] Re6:diffの差分移動 かて 2006年03月07日 09:11

                ▼ maruさん
                > 再現しませんね・・・。もしかしてセミコロン。
                マクロに登録して使用していたのですが、セミコロンを外して、マクロに登録し直すとできました。
                度々ありがとうございます。

                あとは、比較対象ファイルがシンクロしてくれたら最高なんですけどね(と、さりげなく言ってみる)