Vim 移动单词跳过点

Cot*_*ten 8 vim

我正在使用带有spf13 的 MacVim,当我w用来向前移动单词时,点被视为单词的一部分。

     myObject.myMethod()
     ^       ^        ^
     |       |        |
cursor       |        |
             |        |
  where I want to go  |
                      |
where I'm actually moved
Run Code Online (Sandbox Code Playgroud)

有这个设置吗?

跟进: 我注意到 vim 只对某些文件表现得如此。对于fileA.coffee前进跳过点,但fileB.coffee事实并非如此。这是在文件级别设置的吗?

但是,在跳过点 ( fileA)的文件上,iskeyword-=.按照 Heptite 的建议执行 :set工作。

Hep*_*ite 11

是不二之'iskeyword'选。您可以通过执行以下操作来更改此行为:

:set iskeyword-=.
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,则意味着句点字符作为字符范围的一部分而不是单独包含在选项中,您必须检查该值(将问号作为命令的一部分):

:verbose set iskeyword?
Run Code Online (Sandbox Code Playgroud)

然后确定如何正确修改它以排除期间。看看这个(单引号作为命令的一部分):

:help 'iskeyword'
Run Code Online (Sandbox Code Playgroud)

我应该警告你,包含句点字符'iskeyword'不是 Vim 的默认值,所以你可能有一个文件类型插件或特定语言的语法突出显示正在添加它。这样做的原因是因为 ' iskeyword' 用于许多事情,包括某些正则表达式原子,可用于语法突出显示。因此,删除它可能会“破坏”其他东西。

  • @Cotten:正如我的回答所说,虽然显然不够清楚,是的,这个选项可以并且可能已经在每个缓冲区级别上设置,可能是通过系统语法突出显示脚本或文件类型插件。我的回答中的“`:verbose set iskeyword?`”命令会告诉你是哪个源脚本设置了它。 (3认同)