Windows の職場環境ではサクラエディタを使うことが多い。今の職場でも前の職場でも常用していて、起動が速く、簡単なメモが書けて、カスタマイズもできる。ただ「なんとなく使えている」だけで、機能の全体像を把握しないまま何年も使ってきた。

そろそろ棚卸しをしようと思い、公式サイト・オンラインヘルプ・GitHub リポジトリを一次情報として機能を洗い出した。自分がよくやる作業は次の4つなので、この観点に効く機能を厚めに見ている。

  1. Markdown 形式でのメモ書き
  2. ログ調査(大きなテキストファイルの閲覧・grep 的な絞り込み)
  3. 文字置換(正規表現含む)
  4. 検索(ファイル内/複数ファイル横断)

前提

項目内容
最新安定版Ver. 2.4.2(公式サイト表記のリリース日は 2022-12-03)
対応OSWindows専用。Ver. 2.4.0.0 以降が Windows 10 対応
ライセンスZlib License
正規表現エンジンbregonig.dll(鬼車ベース)。パッケージ版には同梱。旧 BREGEXP.DLL は 2.0.0.0 以降使用不可

正規表現エンジンの世代交代は要注意ポイント。ネット上の古い記事は BREGEXP.DLL 前提で書かれていることがあるが、2.x では使えない。

1. 編集操作(メモ書き・整形)

機能名概要操作方法(キー・設定箇所)使いどころ
矩形範囲選択縦方向のブロック選択Shift+F6 / Alt+ドラッグログの特定カラムだけ抜き出す、表形式データの一列削除
矩形貼り付け矩形でコピーした内容を縦に貼る編集→矩形貼り付け複数行の行頭に同じ文字を一括挿入(- > の付与)
昇順/降順ソート選択行を並べ替え編集→昇順ソート/降順ソートログのメッセージ種別を揃えて、同種行を固めて眺める
重複行削除選択範囲の重複行を除去編集→重複行削除ソート後に実行して「出現したエラー種類」を一覧化
左/右の空白を削除行頭・行末の空白除去編集→左(右)の空白を削除貼り付けたログの整形、Markdown の余計な行末空白の除去
選択範囲内全行引用符付きコピー各行に引用符を付けてコピー編集→コピー系メモに引用ブロックを作る(記号は共通設定で変更可)
選択範囲内全行行番号付きコピー行番号付きでコピー編集→コピー系「この設定ファイルの N 行目」を報告に貼る
CRLF改行でコピー折り返しでなく実改行でコピー編集→コピー系他ツール・メール本文へ貼るときの改行崩れ防止
このファイルのパス名をコピーフルパスをクリップボードへ編集→コピー系(パス+カーソル位置版もあり)調査中のログのパスを手打ちせず控える
単語削除カーソル位置の単語を削除Shift+Ctrl+D(単語の左端/右端まで削除も別途あり)設定値だけを消して書き換える
コントロールコード入力NUL, SOH, LF, CR 等を直接入力ツールメニュー制御文字混入の疑いがあるログの再現・検証
入力補完/キーワードヘルプ単語ファイル・辞書ファイルによる補完と用語表示設定→共通設定、タイプ別に有効化業務で使う用語・機器コマンドを単語ファイル化して補完させる

「ソート → 重複行削除」の組み合わせが地味に強い。ログを貼り付けて2操作するだけで、出現したエラーの種類が一覧になる。

2. 検索・置換

機能名概要操作方法(キー・設定箇所)使いどころ
検索ファイル内検索Ctrl+F基本。正規表現チェックを ON にすれば regex 検索
置換置換/すべて置換Ctrl+R基本。正規表現+後方参照で構造ごと書き換え
次を検索/前を検索検索結果を順に移動F3 / Shift+F3ダイアログを閉じたまま送る
検索マークの切替えヒット箇所を全件ハイライト表示検索→検索マークの切替えログ内でエラー語を光らせたまま全体をスクロールし、分布を見る
インクリメンタルサーチ入力しながら逐次検索検索→インクリメンタルサーチ(前方/後方/正規表現版/MIGEMO版)目 grep 中の高速移動
対括弧の検索対応する括弧へジャンプ検索→対括弧の検索設定ファイル・スクリプトの括弧対応確認
正規表現ライブラリbregonig.dll(鬼車)を使用設定→共通設定→「検索」プロパティで指定ここが未設定だと正規表現が使えない。最初に確認すべき箇所
指定行へジャンプ行番号指定で移動Ctrl+J「N 行目でエラー」の指摘先へ直行
ブックマーク任意行に印を付けて往復設定 Ctrl+F2 / 次 F2 / 前 Shift+F2 / 全解除・一覧あり調査中の要注意行をマークして往復。ファイルを閉じても保持可能

インクリメンタルサーチには正規表現版と MIGEMO 版がある。ただしデフォルトキーはヘルプのキー割り当て一覧に載っていないので、自分でキーを割り当てる前提。

3. ログ調査・大容量ファイル

機能名概要操作方法(キー・設定箇所)使いどころ
Grep複数ファイル横断検索(内蔵)Ctrl+G。正規表現 Grep 可ログ調査の主力。フォルダ内の複数ログを一発で串刺し検索
Grep置換Grep 結果に対する一括置換検索→Grep置換複数ファイルにまたがる設定値の一斉書き換え
Grep結果からのタグジャンプ結果行から該当ファイルの該当行へ飛ぶF12Ctrl+T)/ダイレクトタグジャンプGrep で当たりを付けて即現物へ。Grep 結果は通常テキストとして編集・保存可能
アウトライン解析文書構造をツリー表示F11行頭の数字(1 2 3…)や記号(■□▲…)でのツリー化に対応。解析ルールは自作追加可
ミニマップ全体像の縮小表示設定→ミニマップ表示切り替え長大ログの中でのおおよその現在地把握
文字コードの読み書きJIS / EUC / Unicode / UnicodeBE / UTF-8 / UTF-7設定→文字コードセット指定機器から落としたログの文字化け対処
折り返し方法・折り返し桁数折り返し制御設定→折り返し方法/折り返し桁数1行が長いログは「折り返さない」にして横スクロール閲覧
DIFF差分表示/ファイル内容比較DIFF.exe による差分表示、次/前の差分へ移動検索→DIFF差分表示変更前後のコンフィグ比較
排他制御・自動バックアップ編集ファイルのロック、自動バックアップ共通設定触ってはいけないファイルの誤編集防止

大容量ファイルの限界

サクラエディタはファイルをメモリ上に全読み込みする方式なので、GB 級のログには向かない。

  • 32bit 版は 2GB 超のファイルを開けない(扱える文字数にも上限がある)
  • 約1.9GB のファイルで Runtime Error になったという報告がある
  • メモ帳のような 500MB 制限はないが、メモリを確保できなければ数分後にクラッシュしうる

このサイズ帯を日常的に扱うなら、素直に別ツールと併用したほうがいい。

4. マクロ

機能名概要操作方法(キー・設定箇所)使いどころ
キーボードマクロ操作を記録して再生ツール→キーボードマクロその場限りの定型整形。学習コスト最小の入口
WSHマクロWindows Scripting Host(JScript/VBScript)で記述ツール→マクロ、設定→共通設定「マクロ」で登録「ログを整形して Markdown 表にする」等の定型処理の恒久化
PPAマクロPascal 互換 PPA によるマクロ同上WSH で足りない場合の選択肢
マクロ専用関数検索・置換・カーソル操作等の API 群ヘルプ「マクロ専用関数」「マクロ記載例」実装時のリファレンス。記載例ページから写経するのが早い
マクロのキー割り当て登録マクロにショートカットを付与共通設定→マクロで登録 → キー割り当て頻用マクロをワンキー化

5. 設定・カスタマイズ

機能名概要操作方法(キー・設定箇所)使いどころ
タイプ別設定拡張子ごとの設定一式(スクリーン/カラー/正規表現キーワード等)設定→タイプ別設定一覧→追加Markdown 設定の入口(後述)
強調キーワード各モード10セットまで色分け登録タイプ別設定→カラー業務で使う機器コマンド・エラーコードを色付け
正規表現キーワード正規表現ベースの強調。インポート可能タイプ別設定→正規表現キーワード(.rkw ファイル)Markdown の見出し・強調・コードの色分けはこれで実現
キー割り当て全コマンドにキー設定。1コマンドに複数キー割当可設定→共通設定→キー割り当て前の職場からの手癖を再現。デフォルト一覧はヘルプ「キー割り当て一覧」
カスタムメニュー/右クリックメニューメニュー1〜24の内容とアクセスキーを編集共通設定頻用コマンドを右クリック一発に
画面要素の表示切替ツールバー/ファンクションキー/タブバー/ステータスバー/ミニマップ設定メニュー直下作業内容で表示を出し分け
モード別の表示設定Tab幅・文字間隔・行間隔、自動インデント・ワードラップ・禁則処理タイプ別設定Markdown は「折り返しあり」、ログは「折り返しなし」で使い分け
フォント設定フォント種・サイズ設定→フォント設定
印刷設定8つまで登録可。フォント・余白・ヘッダー/フッター設定手順書の紙出し
設定フォルダー設定ファイルの格納場所を開く設定→設定フォルダー環境を移るときの設定持ち出しはここ経由
ユーザー別設定/Virtual Store設定の保存先まわりの挙動ヘルプ HLP000078 / HLP000080設定が保存されない場合の調査先
アウトライン解析ルール追加独自の見出し規則を定義タイプ別設定Markdown の # 見出しをツリー化する

6. その他

機能名概要操作方法使いどころ
タブモード/常駐機能複数ファイルをタブ管理、常駐で起動高速化共通設定複数ログの並行調査
ファイルツリーファイル一覧のツリー表示検索→ファイルツリー調査対象フォルダを開きっぱなしに
カーソル位置・ブックマーク保持ファイルを閉じても位置を記憶共通設定中断した調査の再開
履歴の管理検索・ファイル履歴の管理設定→履歴の管理履歴を残したくないときのクリア
プラグインプラグイン機構ありヘルプ HLP000110拡張の余地
編集モード(標準搭載)テキスト/C・C++/HTML/PL-SQL/COBOL/Java/アセンブラ/AWK/バッチ/Pascal/TeX/Perl/VB/リッチテキスト/設定ファイルMarkdown は標準搭載されていない

Markdown は自分で作る必要がある

標準の編集モード一覧を見ると分かるが、Markdown は入っていない。COBOL や PL/SQL はあるのに Markdown がないあたりに歴史を感じる。自分で「タイプ別設定」を作る。

  1. 設定 → タイプ別設定一覧 → 「追加」→「設定変更」
  2. 「スクリーン」タブで設定名を Markdownファイル拡張子に md を指定
  3. 「正規表現キーワード」タブで「正規表現キーワードを使用する」にチェック → インポートで配布されている .rkw(例: markdown2.rkw)を読み込む
  4. 必要に応じて「カラー」タブで強調キーワード(10セットまで)と、アウトライン解析ルールを設定

前提として、共通設定 →「検索」プロパティで bregonig.dll が有効になっていることを先に確認する。ここが未設定だと正規表現キーワードも正規表現検索も効かない。

まず覚える5つ

棚卸しの結果、自分の4用途に対して投資対効果が高い順に並べるとこうなった。

  1. Grep(Ctrl+G)と Grep 結果からのタグジャンプ(F12 — ログ調査の効果が最大。結果画面がそのまま編集可能なテキストである点まで使えると強い
  2. 正規表現の有効化(共通設定→検索→bregonig.dll)と、正規表現での検索・置換(Ctrl+F / Ctrl+R — 4用途のうち2つを直接底上げする土台。ここが未設定だと他の機能も半減する
  3. タイプ別設定で Markdown を作る — 一度作れば恒久的に効く。メモ用途の体感が最も変わる
  4. 矩形選択(Shift+F6)+ソート+重複行削除の3点セット — 「出現エラー種別の一覧化」「行頭一括挿入」が手作業から解放される
  5. キー割り当て(共通設定)とキーボードマクロ — 手癖を移植し、定型整形を記録再生に落とす。WSH マクロはこの次の段階でよい

「機能を知らなかった」というより「設定していなかったから使えなかった」ものが多い。特に 2 は、これを有効にしていないまま正規表現検索を試して「効かない」と諦めた記憶がある。

調べきれなかった点

  • Grep置換・インクリメンタルサーチ・行削除のデフォルトキーはヘルプのキー割り当て一覧に明記がない。未割り当ての可能性が高く、自分で割り当てる前提
  • v2.4.2 の正確なリリース日。公式サイトは 2022-12-03 表記だが、GitHub のリリースページは表示エラーで年を確定できなかった
  • 実際に使う .rkw(Markdown 用の正規表現キーワード定義)の入手元と中身は未検証

参考

一次情報:

補完: