CotEditor

CotEditor 4.2での重要な変更

CotEditorはバージョン4.2.0から改行コードの扱いが変更されました。バージョン4.2.0以前では内部的には改行コードはすべてLF (U+000A)として扱っていましたが、バージョン4.2.0以降は書類ファイルの実際の改行コードをそのまま扱います。そのため、とくに以前のバージョンを使っていたユーザはこの変更を意識し、いくつかの設定で変更が必要になる場合があります。

本ページは、この仕様変更に伴いユーザが注意すべき事項をまとめています。同様の内容はCotEditor 4.2.0にバンドルされているヘルプからも参照できます。

CotEditor 4.2.0 のリリースノート

正規表現パターンでの改行コード

従来のCotEditorは内部的にすべて改行コードをLFで処理していたため、書類の実際の改行コードに関わらず\nを改行を認識する正規表現パターンとして利用できました。CotEditor 4.2.0以降では\nは改行コードにLFを用いる書類でしか改行に一致しなくなります。従来のように書類に改行コードの如何に関わらず改行に一致させたい場合は\nでなく\Rを用いてください。

\Rは、CotEditorが使用しているICU正規表現エンジンにおいて、改行を表現する文字全般に一致するメタ文字です。U+000A (LF), U+000B, U+000C, U+000D (CR), U+0085, U+2028, U+2029, およびU+000D U+000Aの組み合わせ (CRLF)を改行コードとして認識します。

保存している設定での改行の取り扱い

改行コードとしてLFのみを想定したスクリプト処理や正規表現パターンは、CotEditor 4.2.0以降LF以外の改行コードを持つ書類で意図した挙動をしなくなる可能性があります。これらユーザ設定はユーザ自身が設定を変更する必要があります。

CotEidtorで改行が関わるユーザ設定としては、以下の設定項目が該当します:

検索と置換での改行

正規表現を用いない通常の文字列での検索と置換では、検索/置換文字列内に改行が含まれる場合、その改行は検索対象の書類で用いられている改行コードと同一の改行コードであると想定して使用されます。

これは、たとえば、改行コードCRを含む文字列を(正規表現でない)検索文字列として使用して改行コードLFの書類を検索した場合、検索文字列の改行はすべてLFとして使用される、ということです。検索で改行コードを厳密に扱いたい場合は、正規表現を利用してください。

一方、置換においては、置換文字列に含まれる(\nのようなメタ文字での指定も含む)すべての改行コードは書類の改行コードと同一の改行コードに差し替えられます。現状は書類の改行コード以外の改行コードで置換する方法は提供されておらず、これは以前のCotEditorと同じ仕様となります。