CotEditor 4.2での重要な変更
CotEditorはバージョン4.2.0から改行コードの扱いが変更されました。バージョン4.2.0以前では内部的には改行コードはすべてLF (U+000A
)として扱っていましたが、バージョン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と同じ仕様となります。