TresGrep Ver0.95で一括置換に対応

このところ不具合修正等で頻繁にバージョンアップを繰り返していたTresGrepですが、並行して開発していた一括置換機能があっさりとひととおり動くようになりました。本日公開のバージョンより一括置換機能の提供を開始します。

一括置換機能の使い方

(1)まずはメイン画面(検索画面)にて書き換えたいキーワードで検索を行います。
(2)一覧表示にて、一括置換したいマッチ行あるいはファイルを選択し(Ctrl/Shiftキーを押しながらの操作で複数行を選択できます)、右クリックメニューの「置換」をクリックします。
⇒一括置換画面が表示されます。

(3)置換文字列テキスト欄に、書き換え後のテキスト内容を入力します。
(4)画面下段プレビュー欄の「置換後」タブに、一括置換後のファイル内容のプレビューが表示されます。意図したとおりの置き換えがなされているか確認します。(必要に応じ、「置換前」タブで変更前のテキスト内容と見比べたりもできます)
(5)画面中段マッチ箇所一覧タブで、置換対象とするマッチ箇所を確認します。置換せずもとの文字列のままとしておきたい箇所があれば、チェックを外します。
(6)「置換実行」ボタンをクリックします。実行確認ダイアログが表示されるので「はい」を選択すると置換処理が行われます。
※ファイルに読み取り専用属性がかかっていたり、もともとの文字コードでは保存できないようなUnicode文字が含まれていたり、検索実行後に書き換えられたリ消滅したり読み書きできない状態になったファイルがあれば、都度確認ダイアログが表示されます。その指示に従ってください。
(7)画面中段の結果サマリ/マッチ箇所タブで実行結果を確認します。「置換結果・備考」列に処理結果が表示されます。一括置換成功したファイルの行は薄い青色で何らかの理由で置換しなかったファイルの行は薄い黄色で、それぞれ表示されます。

TresGrepの一括置換機能の特徴

  • 一括置換前後のファイル内容を全行プレビュー表示できます。プレビュー欄が複数タブ構成になっており、表示タブを切り替えて置換後・置換前の内容目視比較ができます。
  • マッチ箇所の一覧から、置換する箇所/しない箇所を取捨選択できます。(同一ファイル内でもこの行は置換する/別の行は置換しない、といった設定ができます)
  • マッチ箇所の一覧も2タブ構成になっており、置換対象ファイル・置換結果について、マッチ箇所ごとの内容/ファイル単位のサマリ情報をそれぞれ確認できます。
  • 正規表現検索した内容に対して、置換正規表現を利用して置換できます。$0で置換前文字列全体、$1以降でグルーピング内容などが指定できます。(詳細はMSDNの正規表現クイックリファレンスを参照)
  • いったん置換実行してファイルを書き換えた後でも、他の置換キーワードを指定して置換をやり直すことができ、また逆にファイル内容を検索時点の状態に戻すこともできます。
    プレビュー欄についても、現時点(置換実行により書き換え後)のファイル内容/さらに別の置換文字列を指定して置換した場合の想定内容/検索時点における(いっさい置換実行していない状態)のファイル内容をそれぞれ表示して比較できます。
  • 検索モード「行検索」で検索した場合は、マッチした行を削除/マッチした行以外をすべて削除する「行削除モード」の置換もできます。

一括置換みたいな操作は、ツールを利用する側にとって(失敗するとファイルを壊してしまうこともあり)相当神経を使う作業なんですよね・・・。置換内容の確認がやりやすいよう置換前/置換後両方の全行プレビューができるようにしてみたり、置換済/未済を一覧表示エリアで視覚的に把握できるようにしてみたり、万一置換ミスしてしまった場合でもある程度はリカバリができるようにしてみたり、と、検索画面以上に使い勝手にはこだわってみました。

使用上の注意

  1. TresGrep側では一括置換実行時にファイルのバックアップは一切取りません。かならず実行前にファイルのバックアップを確保してください。
    (TresGrep側お仕着せのルールで中途半端なバックアップファイルを取得するよりも利用者自身の方針で取ったほうが良いと判断した、というのと、一括置換処理のパフォーマンス/所要時間を高めるうえではバックアップ作成みたいな余計な処理で時間をとられたくない、という2点の理由から、割り切りました)
  2. 一括置換画面使用中は、他のエディタ等での置換対象ファイルの編集は極力控えてください。エディタ等での編集内容と置換箇所がバッティングするとファイルが破損する恐れがあります。(一応TresGrep側でもファイルを書き換えて大丈夫か確認する処理は入れてありますが、万全ではありません)
  3. 置換内容が妥当かどうかは、置換後プレビュー内容の表示で確認してください。(プレビュー欄に表示されている内容がそのまま置換後ファイルに書き込まれます。ベータ版で置換機能にバグがあるとすれば、おそらくファイル書き込みよりも前にプレビュー表示の時点で内容がおかしくなっているはずです)
  4. 2017年10月時点のバージョンはベータ版です。不具合がいろいろ残っている可能性がありますので、自己責任でお使いください。(いちおう普通に想定できるような現象については正常パターン/異常パターンともだいたい動作確認したつもりですが、作者のPC以外での動作確認はほとんど行っておらず、さまざまな環境での動作実績がまだありません)

なにか不具合や気になる挙動を見つけた方は、作者まで一報いただけると大変助かります。(このBLOGエントリにでもコメントをつけてもらえればリアクションします)