単語単位のcursor移動
Ctrl+矢印キーでできるやつ
scrapboxにおける単語単位のcursor移動
自作できないか考える
だいたい共通している挙動
区切り
半角スペース
ひらがな
カタカナ
漢字
全角英数
おそらく、文字コードを読んで、区切っているんだと思う
これをもう少し改良すればいけそう
stirng.match(/\p{sc=Hira}+|\p{sc=Katakana}+|\p{sc=Han}+|\p{sc=Latin}+|./ug)
Unicode property escapesを使った
直すところ
/icons/done.icon空白文字を単語に加える
記号のチェック
正規表現作るのがめんどいのでパス
/icons/done.icon半角カナと全角カナを分ける
\p{sc=Katakana}だと全部混ざる
ここは[]で個別にチェックしたほうがよさそう
直したやつ
stirng.match(/[\p{sc=Hira}\s]+|[ヲ-゚\s]+|[ァ-ヶ\s]+|[\p{sc=Han}\s]+|[\p{sc=Latin}\s]+|[0-9\s]+|[0-9\s]+|./ug)
↑これだと空白でつながってしまう
あくまで空白の後の単語と区別したいのでこうする
改行以外の空白にmatchするようにした
改行を除く空白にマッチする正規表現
stirng.match(/(?:\p{sc=Hira}+|[ヲ-゚]+|[ァ-ヶ]+|\p{sc=Han}+|\p{sc=Latin}+|[0-9]+|[0-9]+|.)[^\S\n]*\n*/ug)
絵文字にもmatchする
2020-11-22 00:00:38 ハイフンが消えていることに気づいた
なぜだ?
00:07:46 [0-9]+を[0-9]*にしていたのが原因っぽい?
なんでそれで消えるのかはわからない
参考になりそうなリンク
usr_03 - Vim日本語ドキュメント
iskeywordを見ればいいっぽい
通常はalphabet以外、つまり\Wで区切られるみたい
Vimでの日本語のカーソル移動の改善: 文節単位のWORD移動(W,E,B)プラグインと、句読点に移動するmap
defaultの設定でutf-8の場合は、連続した文字種を1単語としているようだ
これが実装したい挙動だな
文字種というものがあるのか?
調べてみたがなさそう
TinySegmenterを使えばいけるのでは?
http://charset.7jp.net/
ChromeならIntl.Segmenter()が使えるっぽい
JavaScriptのIntl.Segmenterで文章の意味分割を行う
#2022-01-08 18:30:31
#2021-05-10 21:01:23
#2020-11-21 14:25:05
#2020-11-15 00:46:22