|
マクロで文字の数え方の単位は、従来はx,yの座標で考える「秀丸単位(座標)」、column,linenoで数える「秀丸単位(文字列/行)」でした。
これに加えて、以下のものを広くカバーできるように追加しています。
- Unicodeで扱える「UCS-2単位」「UCS-4単位」
- カーソル移動そのままで扱える「秀丸単位(カーソル移動)」
- ICU(International Components for Unicode )に基づいた「書記素クラスター単位」(Windows 10 Version 1903以降)
Unicodeを扱う場合は、多くの場合16bitを1つの単位とするUCS-2単位ですが、最近はU+10000以上の32bitを1つの単位とするUCS-4が増えてきたので、UCS-4単位だと簡単に扱うことができます。
書記素クラスター単位はICUに基づいてプラットフォームに依存しない扱いがしやすくなります。
詳細はマクロヘルプの「文字の単位」を参照してください。
単位ごとの長さを表示する例:
newfile;
insert "\U0001F469\U0001F3FC";
message "UCS-2単位の長さ:"+str(linelen_wcs);
message "UCS-4単位の長さ:"+str(linelen_ucs4);
message "カーソル移動単位の長さ:"+str(linelen_cmu);
message "書記素クラスター単位の長さ:"+str(linelen_gcu);
|
|