技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

サクラエディタ

一時的なエスケープ文字としてバイナリ文字を使う

ファイルで文字列置換を行う際、特定の条件を満たす文字を置換したくない場合があります。例えば、CSVファイルの区切り文字であるカンマをタブ文字に置換したい場合、文字列項目中に出現する区切り文字ではないカンマ、具体的に言うと""で囲まれた箇所のカン…

サクラエディタのマクロで大量のコマンドを実行した場合の予期せぬ挙動

この記事は、以下の2記事をまとめたものになります。 サクラエディタのマクロ(置換処理記述)をバッチから並列実行すると処理が競合するhttps://akira2kun.hatenablog.com/entry/2019/03/11/234403 サクラエディタのマクロに大量(500以上)のコマンドを記述…

EmEditorとサクラエディタの性能比較(巨大ファイルを開く)

EmEditorは、サクラエディタとほぼ同時期(2000年頃)に生まれたWindows用のテキストエディタです。サクラエディタと比較すると、巨大ファイルを開く時の速さに定評があります。 実際にどれほどの差があるのかを計測しましたので、計測結果を公開します。先…

サクラエディタの置換機能を使った簡単な独自ソート

サクラエディタの機能として昇順・降順ソートが用意されていますが、それ以外の独自の条件でソートを行いたい場合、置換機能を上手く使うことでソートできる場合があります。改行コードを一時的に置き換えて1行のファイルにするのと、参照機能で並び替えを…

サクラエディタ:範囲指定と否定範囲指定の併用

以下のように記述することで、範囲指定と否定範囲指定を併用できます。 ([範囲指定]|[^範囲指定]) 例えば、改行コードは明確に指定しないとヒットしないのですが、それを否定範囲指定と併用したい時に使えます。実際に使ってみた結果が以下の通りです。

サクラエディタのマクロが動かない場合→マクロの文字コードを確認

ある人が作っていたサクラエディタのマクロが動かない(全角文字の置換ができない)ので、うまく動くサクラエディタのマクロと見比べた結果、マクロの文字コードに原因があったので、メモ代わりに残します。上手く動いたマクロはSJISで保存されていたのに対…

サクラエディタのマクロに大量(500以上)のコマンドを記述すると一部コマンドが実行されなくなる(推測)

スペックの高いPC(詳細は後述)の場合、サクラエディタのマクロに大量(500以上)のコマンドを記述し実行した時に一部コマンドが実行されなくなる現象を確認しました。現象が発生するPCの場合、コマンド数が600程度の時に発生したり発生しなかったりし、700を…

サクラエディタのマクロ(置換処理記述)をバッチから並列実行すると処理が競合する

サクラエディタの Ver2.2.0.1 にて表題の挙動を確認したので、記録に残しておきます。 【再現手順】1.大量(確認時は1000個)の置換処理をマクロに記載する。例S_ReplaceAll('hoge1000', 'fuga1000', 62); // すべて置換S_ReplaceAll('hoge999', 'fuga999'…

サクラエディタとExcelでgoogle検索ハイパーリンクを生成

調査のため、キーワードを変えて大量のgoogle検索をかける機会があったので、サクラエディタとExcelの機能を使って効率化しました。キーワードからgoogle検索用のURLを作成し、そのURLをハイパーリンク化することで、ハイパーリンクをクリックするだけで検索…

サクラエディタ:UNIXの改行コード(LF)をWindowsの改行コード(CRLF)へ変換(改行コード混在考慮)

改行コードが混在しているファイルについて、UNIXの改行コード(LF)をWindowsの改行コード(CRLF)へ変換する(統一する)のに意外と頭を使ったので、メモします。下記のマクロを使えば変換ができます。 【マクロ】・LF→CRLF.macS_ReplaceAll('([^\\r])\\n', '$…

サクラエディタ:ソースコード中の変数名を完全一致で検索する

結論から言うと、正規表現で以下の指定をすることで、ソースコード中の変数名を完全一致で検索できます。(javaの場合を想定しています。また、ソースは適切にインデントされ、文頭に変数名が存在しない(左側にスペースを全く入れずに変数名を記述するとい…

サクラエディタ:JavaScriptでマクロ実装(サンプル:パスワード自動生成)

最近知ったのですが、サクラエディタのマクロはJavaScriptでも実装できるのですね。 サクラエディタ マクロを開発してみる http://totech.hateblo.jp/entry/2014/03/11/125058 キーマクロでは実現できないことも、JavaScriptなら実現できるということもあり…

サクラエディタをなるべく邪魔にならない場所に開く

こちらの記事のように、「サクラエディタを開く→何らかの処理をする→上書きする→ウインドウを閉じる」をバッチ等で自動的に行うと、新たに開かれたサクラエディタのウインドウが作業の邪魔になったりします。バックグラウンドプロセスのような形でウインドウ…

サクラエディタ:全角文字の検索方法(怒られ・半角カナ回避版)

サクラエディタの正規表現で下記の条件を指定することで、全角文字を指定することが可能です。[^\x00\x00-\x7F\x00。-゚] ネットには似たような指定方法が転がっていますが、正規表現に「dregonig.dll Ver.3.06 with Onigmo 5.15.0」を使用している場合は、こ…

サクラエディタ:特定の文字列を含まない行をgrepで抽出する

UNIXのgrepコマンドだと-vオプションで指定した文字列を含まない行を抽出することができますが、サクラエディタのgrepだと一見できないように見えるので。 結論から言うと、^((?!hoge).)*$と指定すればできます(「hoge」は任意の文字列)。 以下、おまじな…

サクラエディタのマクロをバッチファイルで複数ファイルに対して実行

表題の通りです。 実務で使う機会があったのでメモします。 置換するだけならgrep置換機能で良いのですが、古いバージョンだとこの機能が入っていませんし、ソート→マージ等の置換以外の機能を使いたくなることもあるので。 以下、例を用いて説明します。 【…

サクラエディタ:置換で使える参照機能

テストで使う機会があったのでメモ。 サクラエディタの正規表現を用いた置換では、ヒットした文字列を置換後で参照することが可能です。「$&」で、ヒットした文字列全体を参照します。また、置換前の文字列の指定で「()」で囲った部分については、「${1}」で…