last updated:2021/08/09

Hidemaru Q and A

第II部〜知っていると便利な秀丸の機能
 置換


置換

編集中のファイルにいっぱいある、特定の文字(列)を別の文字(列)に置き換えたい時には、秀丸エディタの「置換」機能を使えば簡単にできます。
置換」とは、以下の2つの作業を一度に行う事です。

  1. 置換したい文字列を検索する
  2. 見つかった文字列を指定した文字列に置き換える

[解説]

編集中のファイルにある「over」という文字列を「upper」という文字列に置き換えたいとします。

  1. 秀丸エディタの「検索」メニューから(もしくはツールバーやファンクションキーで)「置換」を選択して、以下の様に入力します。

    • 検索」のエディットボックスに「over」と入力する
    • 置換」のエディットボックスに「upper」と入力する

    検索」も「置換」は、通常は1行のみですが、複数行を入力可能にできます。詳細は「補足」を参照してください。

    置換ダイアログ

  2. 次に適宜オプションを指定するわけですが、各オプションの意味は以下の通りです。

    • 大文字/小文字の区別」チェックボックス:
      検索文字列の大文字と小文字を区別して検索します。この項目がOFFの場合、上の例で「OVER」や「Over」も置換対象になります。

    • 単語の検索」チェックボックス:
      この項目がONになっていると、「Lovers」や「fover」等の、ある語の一部になっている場合は置換対象になりません。ここで言う「単語」とは、半角英字とアンダースコア("_")のみで構成された文字(列)を指します。

    • 正規表現」チェックボックス:
      正規表現」は「正規表現について」を参照して下さい。
      複数行にマッチする検索に関しては制限が存在します。以下のリンク先を参照してください。

    • あいまい検索」チェックボックス:
      「正規表現」をさらに便利にした「あいまい」な検索が可能になります(全半角同一視等)。
      あいまい検索」は「あいまい検索について」を参照して下さい。

    • 選択した範囲」チェックボックス:
      置換範囲が「範囲選択」された部分に限定されます。範囲選択されていない場合、この項目を設定できません。

      文書の一部分を選択する「BOX範囲選択」の場合、「選択した範囲」は有効になりません。 (Ver.8.94未満の場合は有効になりませんが、Ver.8.94以降だと有効になる)

      ※このオプションの動作の詳細については、[HME0083A]●検索/置換の「選択した範囲」の動作を参照してください。

    • 次の秀丸エディタも続けて置換」チェックボックス
      現在編集中の秀丸エディタウィンドウの他にも秀丸エディタが開いていた場合、その秀丸エディタウィンドウの内容に対しても置換します。

    • 一周する」チェックボックス
      下検索の場合、ファイルの一番下まで検索し終わった場合、ファイルの先頭に戻って検索を続行します。上検索の場合は逆になります。

    • 追加の条件」チェックボックス
      追加の条件に従って検索する範囲を制限できます。
      検索「追加の条件」についてを参照してください。

    • 検索文字列を強調」チェックボックス
      置換実行時、検索に該当する文字列を強調表示します。

    • 置換の前に確認」チェックボックス
      確認ダイアログを表示し、置換する前に本当に置換するかどうかの確認をします。
      置換の確認ダイアログは「その他→動作環境→検索→検索ダイアログ」の「置換の確認の種類」で、種類を変更できます。

  3. 最後に実行方法を選択する事で「置換」が行われます。
    以下のいずれかを選んで下さい。

    • 上検索」(現在のカーソル位置より上にある文字を置換)

    • 下検索」(現在のカーソル位置より下にある文字を置換)

    • 全置換」(編集中のファイルの全ての文字を置換)

      Ver.8.85より、「全置換」ボタンの「▼」マークから、「クイック全置換」が実行できます。

      クイック全置換

      通常の「全置換」と「クイック全置換」の違いについては、秀丸エディタヘルプの「置換」を参照してください。

      簡単に説明しておくと、変換モジュールを使った状態と同じで、対象範囲をまるごと入れ替えるような動作になります。その為、置換した箇所の把握はできません。また、カラーマーカーや折りたたみなどは保持されずに破棄されます。

[補足]

[置換確認のダイアログ]

置換の前に確認」をチェックすると、確認用ダイアログが表示されます。このダイアログは複数あり、設定により切り替え可能です。

従来のダイアログ
確認ダイアログ従来タイプ

新しいダイアログ(タイプ2)
確認ダイアログタイプ2

新しいダイアログ(タイプ3)
確認ダイアログタイプ3

以前だと、「一周する」がオフの状態で上検索または下検索して、ファイルの上限か下限に達して検索出来なくなると確認ダイアログが消えましたが、現状では「キャンセル」しないと表示されたままになります。 (移動できない方向の検索ボタンは無効化された状態になる)

従来のダイアログでの表示例
確認ダイアログ従来タイプその2

これは、例えば「下検索」実行時に、ファイル末尾まで検索した場合、そのまま「上検索」を実行可能にする為です。以前のように、マッチしなくなった場合、ダイアログを消すよう変更できます。 (「置換の確認の種類」を「従来の互換(末端で自動的に消す)」に設定)

[置換に関する設定]

置換に関する設定は2箇所あります。各機能に関しては、各ダイアログの「ヘルプ」を参照の事。どちらでも、「置換確認のダイアログ」を選択可能です。

[変換モジュールを使った置換]

秀丸エディタ Ver.8.13より、検索結果に対し「変換モジュールの機能」を実行できるようになりました。

これで何ができるかというと、検索でマッチした箇所を大文字/小文字/全角/半角へ変換できます。 (検索でマッチした箇所に、「変換モジュールが持つ各種変換」を実行できる)

この機能を使用する場合は、正規表現 を有効にする必要があります。

標準添付されている変換モジュールの機能は以下になります。

標準添付の変換モジュール
関数名 機能
ToUpper UPPER CASE(大文字へ)
ToLower lower case(小文字へ)
ToHankaku ハンカク
ToZenkakuHira 全角ひらがな
ToZenkakuKata 全角カタカナ
ToSpace TAB -> 空白
ToTab 空白 -> TAB
ToHankakuAlnum 英数字/記号/空白のみ半角に
ToZenkakuAlnum 英数字/記号/空白のみ全角に
ToHankakuKataOnly カタカナのみ半角に
ToZenkakuKataOnly カタカナのみ全角に
Indent インデント
UnIndent 逆インデント
Sort ソート

置換のエディットボックスに以下のフォーマットで記入すること。

\(タグ番号, 関数名, 変換モジュール名)
タグ番号
0 はマッチした全体。
1〜15 は、タグ付き正規表現を使用した場合のタグ番号。
関数名
使用したい機能を指定。
「ハンカク」を実行したい場合は "ToHankaku" を指定する。
変換モジュール名
標準添付の変換モジュールは省略可能。標準添付以外の変換モジュールを使う場合は指定する必要がある。
秀丸エディタ本体と同じ場所に変換モジュールがある場合以外は、フルパスで指定する事。
例)hidemaru と editor を大文字に変換したい場合

通常の置換では、置換を2回実行する必要があります。

  • 置換一回目

    検索:hidemaru
    置換:HIDEMARU
    
    実行前:hidemaru editor
    実行後:HIDEMARU editor
  • 置換二回目

    検索:editor
    置換:EDITOR
    
    実行前:HIDEMARU editor
    実行後:HIDEMARU EDITOR

変換モジュールの機能を使えば一回の置換で可能。

検索:(hidemaru|editor)
置換:\(0,ToUpper)

実行前:hidemaru editor
実行後:HIDEMARU EDITOR

変換モジュールの機能を組み合わせることも可能で、大文字に変換して、さらに全角へ変換という事もできます。

検索:(hidemaru|editor)
置換:\((0,ToUpper),ToZenkakuAlnum)

実行前:hidemaru editor
実行後:HIDEMARU EDITOR

詳細はヘルプ置換の時の、変換モジュールによる変換の指定を参照してください。

ヒストリに常駐

「検索」は検索と共通ですが、「置換」は単独で設定可能です。

ヒストリに常駐」の設定方法は、「検索」「ヒストリに常駐」を参照してください。

検索/置換文字数の上限

複数行の「検索」と「置換」エディットボックスに入力し、検索/置換に指定できる文字列には上限があり、約4000文字が上限となります。

上限を超えると、警告が表示されます。

置換ダイアログの警告


目次に戻る