#author("2026-09-01T16:56:50+09:00","","") #author("2026-09-01T17:19:59+09:00","","") * motion webs [#fbad9216] ** motion webs 仕様2 [#v275b54b] - motion command "W|E|B|(|)"を置き換える ***"(|)" [#m19dc37b] - カーソル位置の文字種類によらず文の先頭で止まる -- ただし空行があれば空行で止まる: vimの動き - ".|!|?" + white space(1個以上の繰り返し)が文の終端 - sentense_set + white space(0個以上の繰り返し)が文の終端 -- sentense_setはsetupで変更可能 -- sentense_setの省略値は"。.!?។" -- "។"はKhmer語の句点 - white spaceにはU+3000(IDEOGRAPHIC SPACE)を含む(以下同様) *** "W|E|B" [#fcd7645f] "W|E|B"はカーソル位置の文字種類によって動作が変わる - カーソル位置がword_chars以外(word_chars:CJK, Khmer, ...) -- 通常のvimのコマンドと同じ動きをする(white spaceの次) -- ただし、word_charsとの境界で止まる "abc日本語" で先頭にカーソルがある場合: "W"で"日"へ、"E"で"c"へ - カーソル位置がword_charsの場合 -- wordlength+1以内にword_chars以外(または" ")があればword_chars以外で止まる -- ("W"の場合word_cahrs以外で止まり、"E"の場合word_charsで止まる) -- wordlength+1以内にword_chars以外がなければwordlength+1で止まる -- ただし、white spaceは飛ばしてwhite space以外の文字で止まる -- wordlengthはsetupで変更可能 -- wordlengthの省略値は"5" -- Eの場合はWと同じだが一つ手前で止まる -- 空行があれば空行で必ず止まる -- white spaceは飛ばしてwhite spaceでは止まらない ** motion webs 仕様 [#v275b54b] - motion command "W|E|B|(|)"を置き換える - "(|)" の場合 -- カーソル位置の文字種類によらず次の動作をする -- ".|!|?" + white space を探してその次の文字で止まる: vimの動き -- 空行があれば空行で止まる: vimの動き -- sentense_setの文字と一致すればその次で止まる -- sentense_setはsetupで変更可能 -- sentense_setの省略値は"。.!?។"(文の終端記号) -- "។"はKhmer語の句点ですが、他に登録するものはありますか。"¿"とか? - "W|E|B"はカーソル位置の文字種類によって動作が変わる - カーソル位置がword_chars以外(word_chars:CJK, Khmer, ...) -- 通常のvimのコマンドと同じ動きをする(white spaceの次) -- ただし、word_charsとの境界で止まる("日本語English”の場合"W"なら"E","E"なら"語"で止まる) - カーソル位置がword_charsの場合 -- wordlength+1以内にword_chars以外(または" ")があればword_chars以外で止まる -- ("W"の場合word_cahrs以外で止まり、"E"の場合word_charsで止まる) -- wordlength+1以内にword_chars以外がなければwordlength+1で止まる -- ただし、white spaceは飛ばしてwhite space以外の文字で止まる -- wordlengthはsetupで変更可能 -- wordlengthの省略値は"5" -- Eの場合はWと同じだが一つ手前で止まる -- 空行があれば空行で必ず止まる -- white spaceは飛ばしてwhite spaceでは止まらない ** 現状 [#l81f4391] 日本語を書いている時にはmotion WEB()はほとんど役に立たない 日本語にカーソルがある時はWEB()の働きを変えたらどうか? |key|en|jp| |w|next word first|o| |W|next not-blank first|x| |b|prev word first|o| |B|prev not-blank first|x| |e|next word end|o| |E|next not-blank end|x| |)|next .|x| |(|prev .|x| - [[jasegment.vim:https://gist.github.com/deton/5138905?utm_source=chatgpt.com]] - [[motion_ja.vim:https://gist.github.com/deton/motion_ja.vim]] - digraphs <C-K>wo, <C-K>._, <C-K>,_, <C-K>a5 ** 現状の")", "(" [#c8420675] - ".!?"の後に行末、空白・タブ ** 目標 [#v96f5c34] - hl: 細かく動かす - web: 少し大きく動かす - - WEB: ちょっと大きく動かす -- 次の記号(漢字、ひらがな、カタカナ以外) -- n(=7)文字以内に記号がなければn, n+1 - (): 前後の文に移動する: -- 。!?改行(ただし"、|,"で終わるのはだめ) - []:前後の段落に移動する