探し漏れを防ぐ!Macテキストエディタの置換、ファイル内の置換

ファイル内置換を下見してから実行し戻り道も残すアイキャッチ

まとめて置き換える作業は、下見と実行に分けると事故の危険を減らせます。 ただし、下見の件数だけでは安全と判断できません。検索結果の文脈を確認し、元へ戻せる控えを残したうえで、下見と実行の件数を突き合わせます。

この記事では、下見をどう使うのか、どういう置換で事故が起きるのかを扱います。検索の使い方は別の記事に譲ります。

置換で注意したい事故は「直しすぎ」

置換では、直してはいけない場所まで直す事故に注意が必要です。

どれも、実行してから気づきます。 そして気づいたときには、他の直しと混ざっています。

元に戻せばいい、という考え方

取り消しに対応したエディタなら、置換を実行して、おかしいと気づいた時点で戻せる場合があります。

これで済む場合もあります。置換の直後に気づけば、1回の取り消しで戻ります。

「直後に気づけるとは限らない」

問題は、置換の影響が全部見えるわけではないことです。

20ファイルにまたがる置換をすると、画面に見えているのは1ファイルだけです。他の19ファイルで何が起きたかは、開かないと分かりません。おかしいと気づくのは、数日後にその章を読み返したときです。

そのころには、他の編集も重ねています。 取り消しを繰り返して置換の直前まで戻すと、そのあとの編集も全部消えます。

もう一つ、取り消しが効かない場合があります。 ファイルを閉じたあと、アプリを終了したあと、別の道具で置換した場合。こうなると、手で直すしかありません。

rune Studioは、実行前に対象の件数を返す

rune Studioには、置き換えずに下見だけを行う指定があります。

実際に開発版を命令から動かして確かめました。ある語を別の語に置き換える下見をかけたところ、対象は2ファイル・2か所と返り、原稿は変わっていませんでした。

先に件数が出るので、思っていた数と違えば実行前に止まれます。 ただし、3か所のつもりで40か所と返ったとき、増えた37か所がすべて誤対象とは限りません。自分が把握していなかった正しい対象もあり得るため、検索結果の行と前後の文脈を見て分類します。

件数より先に、対象の文脈を確認する

置換前に同じ条件で検索し、ファイル名、行番号、その行の文章を確認します。件数が少なければ全件を見ます。多ければ、少なくとも各ファイルと、引用・固有名詞・本文など異なる文脈の例を確認します。

想定件数と一致しても安全とは限りません。正しい対象を1件漏らし、誤対象を1件含めば、合計は想定どおりになります。件数は異常を見つける合図、文脈確認は対象を決める工程として分けます。

さらに、対象ファイルの複製など、実行前の状態へ戻せる控えを残します。下見は原稿を変えませんが、実行後の判断ミスまでは自動で元に戻しません。

実行すると、結果も件数で返る

実際に1つの原稿の中で置換を実行したところ、1か所が置き換わったという結果が返りました。 そのあと置き換え後の語で探し直すと、確かに見つかりました。

「実行した」ではなく「何か所置き換えた」と分かります。 下見の件数と実行の件数が一致するかを確かめられます。

探す範囲を絞れる

作業場全体だけでなく、1つのファイルの中に限って置換することもできます。実際に確かめたのはこの形です。まず1ファイルで試し、結果を見てから全体へ広げる、という進め方ができます。

正規表現は置換でも使える

置き換える条件を、決まった書き方の並びで指定できます。実際に開発版で、置換の指定に正規表現を付けて「第[一二三]章」を「序章」に置き換えたところ、下見では原稿が変わらず、実行すると原稿の「第一章」が「序章」に変わりました。

「山田」ではなく「山田さん」だけを置き換えたい、といった絞り込みができます。 直しすぎを防ぐには、実行する前に条件を狭めるのがいちばん確実です。

逆に、探し漏れが起きるのはどんなときか

タイトルにある「探し漏れ」は、下見の件数が思ったより少ないときに疑います。原因はだいたい3つです。

表記がゆれている。 「引っ越し」で指定すると「引越し」は対象になりません。正規表現で両方を拾える条件にします。

範囲を絞りすぎている。 1つのファイルに限って置換したことを忘れて、全体を直したつもりになる。件数が想定より少なければ、対象範囲を確認してください。

ワークスペース外に原稿がある。 対象はワークスペースの中の原稿なので、外に置いた原稿は入りません。章を別のフォルダへ避難させていると、そこだけ残ります。

下見の件数を「多すぎないか」だけでなく「少なすぎないか」でも見る。 そのうえで検索結果の文脈を確認すると、探し漏れや直しすぎの可能性を実行前に絞れます。

置換の前に、条件を狭める順番

下見で件数が多すぎたとき、条件を狭める順番があります。

まず、語を長くします。 「山田」ではなく「山田さん」。前後の1語を足すだけで、意図しない箇所の多くが外れます。

次に、前後の文脈を条件に足します。 正規表現を使えば、「行頭のこの語」「括弧の中のこの語」といった絞り込みができます。

それでも多いなら、範囲を絞ります。 作業場全体ではなく、1つのファイルに限って置換します。1章ずつ処理すれば、結果を確かめながら進められます。

最後の手段は、置換をやめることです。 多数の箇所を一度に置き換えるより、検索で1件ずつ見て手で直すほうが確実な場合があります。件数だけで一括置換へ進まず、文脈を確認して方法を選びます。

向く人と、別の方法が向く人

向いているのは、複数のファイルにまたがる原稿を扱う人です。 章ごとにファイルを分けていると、置換の影響が画面の外へ広がります。

1ファイルだけの短い文章なら、実行して目で見ても構いません。 画面に全部見えているなら、下見の価値は下がります。

なお、確かめたのは下見と実行の件数が返ること、1つの原稿での置換までです。

まとめ

次の一歩として、次に置換するときは、検索結果の文脈を確認して元ファイルの控えを残し、下見だけをかけてください。対象を確定してから実行し、実行件数と下見件数を突き合わせます。

Rune Studioの製品ページを見る