如何让Vim将字符串中的下划线视为分词?

Dre*_*ens 14 vim

我希望Vim将字符串中的下划线视为单词中断,就像空格一样.例如,如果我有:

sub foo_bar {
    return;
}
Run Code Online (Sandbox Code Playgroud)

当光标从第一行的最左边开始(在'sub'的's'上),点击'w'将光标放在'foo'的'f'上,再按'w'把我带到卷曲,第三个跳到'返回'的'r'.我希望第二次按'w'将我带到'bar'中的'b'.

Pet*_*ter 28

:set iskeyword-=_

  • 当光标落在_第一个,然后在第二个'w'按下转到b时,这并不完全有效. (3认同)
  • 如果发生意外,要执行相反的操作,`:set iskeyword+=_`。另外,`:set iskeyword&` 会将其重置为默认值。 (2认同)
  • 该解决方案的另一个缺点是,代码将在子字符串级别(从下划线到下划线)进行语法突出显示。例如,如果您使用的语言定义了关键字“file”并且您创建了变量“file_name”,则“file”部分将突出显示,其余部分不会突出显示。对于不同的关键字使用多种颜色,这很容易失控。 (2认同)

DrA*_*rAl 11

安装camelcasemotion插件并查看链接页面底部附近的示例,其中显示了如何映射w密钥以使用CamelCase或underscored_words.