noearc / jieba.nvim

基于jieba-lua的neovim中文词跳转
MIT License
11 stars 2 forks source link

[enhancement] word motion `b` 和 `B` 操作的行为区分 #3

Open inkfin opened 3 weeks ago

inkfin commented 3 weeks ago

非常棒的插件! 很疑惑为什么没有成为中文 vim 社区的标准。配合 rime-ls 完美解决 vim 下中文输入的难题。


通义对与 vim b B 命令的解释:

在Vim编辑器中,b 和 B 命令都是用于向左移动光标,但它们按照不同的单位进行移动:

b 命令使光标向左跳到当前单词(word)的开头。在Vim中,一个“单词”是由字母、数字和下划线组成的连续序列,这可以通过 iskeyword 选项来配置。这意味着 b 会忽略标点符号和空格。 B 命令则使光标向左跳到当前WORD(WORD)的开头。在这里,“WORD”是指由任何非空白字符组成的序列,这通常指的是更宽泛的边界,包括标点符号等非单词字符。 简单来说,b 是在单词内部移动,而 B 是在更大的、由空白分隔的文本块之间移动。如果你在一个包含多个由标点分隔的单词的行上,使用 B 会跳过整个由标点和单词组成的单元,而 b 只会移动到下一个单词的开始。

注意到,在英文语境下,很多时候会使用大写来跳转到句子的开头或者结尾,这是通过在符号结尾加一个空格来实现的;但是在中文中,全角标点并不能触发这一行为。

是否可以通过添加 lua code 的方式来让全角标点表现的像空格一样?

noearc commented 2 weeks ago

收到,这部分逻辑是有的,刚刚看了一下好像是全角标点符号实现有点问题,应该能实现

noearc commented 2 weeks ago

更新解决了单个全角符号的问题,但是因为jieba-lua把:”这种连续的全角分成两个token,所以还没办法跳过这种,之后我准备认真清理那边的时候应该会解决这个问题