秀丸エディタ(ひでまるエディタ)は、Windows向けの定番のテキストエディタです。テキストエディタというのは、Windowsに標準で入っている「メモ帳」のような、テキストデータを編集するためのアプリケーションのことです。
今日はこの秀丸エディタの魅力を少しだけお伝えしたいと思います。秀丸エディタはライセンス料4,200円のシェアウェアですが、テキスト編集の効率を劇的に変える代物なので、仕事でテキストファイルをいじる人なら4,200円は決して高い買い物ではないと思います。
秀丸エディタの特徴
秀丸エディタはプログラマ御用達の高機能テキストエディタです。特徴をざっと挙げると、以下のようなものがあります。
- とにかく動作が軽い
- とにかく細かいところまでカスタマイズできる
- 強力なマクロ機能(一連の操作を記憶して簡単に呼び出す機能)
- 正規表現(特定のパターンにマッチする文字列を表現する記法)による検索・置換
- 強力・高速なgrep機能(複数のファイルをまたがって検索する機能)
- 巨大ファイルの処理が可能(1000万行まで対応)
- タブ式による複数ファイルの管理
他にも色々な機能がありますが、一言で言うと、高機能なのに動作が軽快なところが最大の特徴です。
全ての機能を紹介していたら本が一冊書けてしまうので、今日はこの中からマクロ機能と正規表現について簡単にご紹介したいと思います。
便利なマクロ機能
秀丸エディタの最も代表的な機能であるマクロ機能についてご紹介します。
例えば、以下のようなテキストデータがあるとしましょう。
名古屋市千種区
名古屋市東区
名古屋市北区
名古屋市西区
名古屋市中村区
名古屋市中区
これを以下のような形式に書き換えたい場合、皆さんならどうやって編集しますか?
“千種区”
“東区”
“北区”
“西区”
“中村区”
“中区”
おそらく、ほとんどの人は一行ずつ「名古屋市」を消して「”」を先頭に打って、行末に移動して「”」を打って、を繰り返すしか方法が思い付かないのではないかと思います。
秀丸エディタのマクロ機能を使うと、これが以下のような手順で出来るようになります。
- ファイルの先頭にカーソルを置く
- Shift+F1キーを押す(マクロの記録を開始)
- Deleteキーを4回押す(「名古屋市」を削除)
- 「”」を打つ
- Endキーを押す(行末に移動)
- 「”」を打つ
- Homeキーを押す(行頭に移動)
- ↓キーを押す(次の行に移動)
- Shift+F1キーを押す(マクロの記録を終了)
- Shift+F2キーを押しっぱなしにする(記録したマクロを2行目以降に繰り返し適用する)
一見するとかえって面倒な印象を受けるかも知れませんが、実際にやってみると2行目以降は全自動なのですごく楽です。しかも間違いも起きないので安全です。
この例では6行しかない小さなテキストでしたが、もしこれと同じことを100行のテキストでやらなければならなかったらどうでしょう。100行全部を手作業で編集するなんて想像するだけでゾッとしますね。
さらに便利な正規表現での置換
先ほどの例で、「もし100行のテキストだったら」と言いました。確かに100行ぐらいだったらShift+F2(マクロの実行)を押しっぱなしにしていれば数秒~数十秒ぐらいで全行の処理が終えられます。
では、もしこれが1万行あったらどうしましょう。いくら自動でマクロを実行してくれるとは言え、1万行全部を処理し終えるにはおそらく数十分ぐらいは掛かってしまうような気がします。数十分もShift+F2を押し続けていたら左手がどうにかなってしまいそうですね。
そこで、こういう場合には「正規表現での置換」を使います。
百聞は一見に如かずということで、実際に操作した画面イメージを見てみましょう。
まず、「名古屋市○○区」という行を実際に1万行用意してみました。
次に、メニューバーの「検索」から「置換」を開くと上図のような画面になります。
ここで、「検索」の欄に「^名古屋市\f.*\f\n」、「置換」の欄に「”\1″\n」と入力し、「正規表現」のチェックを入れて「全置換」ボタンを押すと…
3秒くらいで1万行すべてが期待どおりの形式に置換されました。超速です。
解説
さて、先ほど「検索」の欄に書いた「^名古屋市\f.*\f\n」という呪文、これは正規表現で「先頭が『名古屋市』で始まる行の改行まで」というパターンを表現したものです。
記号を一つずつ説明すると、「^」は行頭を、「\n」は改行を意味します。つまり、「^名古屋市」と「\n」で、「『名古屋市』で始まる」ということと「改行で終わる」ということを表しているのです。
中ほどにある「.」は、「任意の一文字」を意味し、その直後にある「*」は「0回以上の繰り返し」を意味します。つまり、「.*」というのは「どんなパターンが来てもマッチする」記号になります。さらに、それを「\f」で囲っています。この「\f」で囲った部分にマッチした文字列は、「置換」の欄において「\1」という記号で再利用することが出来ます。
つまり、「置換」の欄に書いた「”\1″\n」というのは、「『名古屋市』と改行の間の文字列を、『”』と『”』+改行で囲む」という意味になるわけです。
・・・すごく難しいですよね。正規表現はそれだけで分厚い専門書が書けてしまうぐらい難しい話なので、慣れるのは大変かも知れません。ですが、使いこなせるようになるとテキスト編集において本当に強力な武器になります。
まとめ
マクロと正規表現を使いこなせるだけでも、テキストファイルを編集する効率は何百倍も良くなります。
リスティング広告の運用ではCSVファイル(コンマやタブ文字でデータを区切って書かれているテキストファイル)を編集する機会も少なくありませんので、運用者の方は秀丸エディタを使いこなして効率アップを図ってみてはいかがでしょうか。