書記素クラスター単位(Ver9.35対応版)
目次−
文字の単位−
書記素クラスター単位
秀丸単位(座標)
秀丸単位(文字列/行)
UCS-2単位
UCS-4単位
秀丸単位(カーソル移動)
書記素クラスター単位
書記素クラスター単位
International Components for Unicode (ICU)に基づいた書記素クラスターの区切りで数えます。
文字列操作では先頭にgcu、キーワード等には末尾に_gcuが付いています。(Grapheme Cluster Unitの略)
V8.96以降で「秀丸単位(文字列/行)」にあるものの多くを、数え方だけを変えて使うことができます。
Windows 10 Version 1903 以降でのみ動作します。
動作しないWindowsの場合は、gcustrlen("")で-1を返すようになっています。
エディタ本文では改行までを1行として数えます。
基本的には秀丸エディタの動作環境やフォントによって判断が変わることはありません。
ただし、エディタ本文に関わる文/キーワードは、1つの書記素クラスターが折り返して2行まで(折り返し1回)の計算になる制限があります。
例:
半角 | 全角 | タブ | 結合文字 | サロゲートペア | 結合するカラー絵文字 |
1 | 1 | 1 | 1 | 1 | 1 |
A | あ | >(tab) |
か + ゙ | 𠀀 | 👨 + + 🦰 |
U+0041 | U+3042 | U+0009 | U+304b U+3099 | U+20000 | U+1F468 U+200D U+1F9B0 |
文字列用サンプル:"か\u3099\U00020000\U0001F468\u200D\U0001F9B0"
HTML用サンプル:が𠀀👨‍🦰
行内でカーソル右移動する例:
moveto_gcu column_gcu + 1, lineno;
行内でカーソル左移動する例:
moveto_gcu column_gcu - 1, lineno;