如何在 VIm 中更改为下一个下划线?

如何在 VIm 中更改为下一个下划线?

如果我在 vim 中有此文本,并且我的光标位于第一个字符:

www.foo.com

我知道我能做到:

  • cw更改为第一个句点,因为 a word(小写 w)以任何标点符号或空格结尾
  • cW改变整个地址,因为 a Word(大写 w)仅在空格处结束

现在,如果我有这个:

stupid_method_name

并想将其更改为此?

awesome_method_name

两者都cw改变cW​​了整个内容,但我只想改变下划线之前的片段。

我的后备技术是c/_,意思是“改变直到你在搜索中遇到下一个下划线”,但对我来说,这也会导致所有下划线都被突出显示为搜索词,这有点烦人。

是否存在像wW这样的不包含下划线的说明符?

答案1

您可以这样做cf_。f 不会突出显示搜索的字符。

ct_如果您不想包含 _,也可以这样做。

答案2

将其放入你的 .vimrc 中:

set iskeyword-=_

然后 _ 将被视为单词边界(但不是 WORD 边界),并且 cw 可用于仅更改“awesome”,而 cW 可用于更改整个内容。

看:

:help iskeyword

:help word

了解更多信息。

答案3

驼峰式动作是一款非常方便的 vim 插件,它允许您在使用下划线或驼峰式表示法时在单词之间移动。使用此插件,您可以在许多传统的 vim 移动命令前面放置逗号,这将允许您将下划线或驼峰式表示法中的单词视为完整单词。

答案4

总结一下之前的所有答案:

没有要排除的说明符_

您可以这样做cf_。搜索到的字符(_此处)将包含在替换字符串中。如果您不想包含搜索到的字符(此处),
也可以这样做。ct__

  • f并且t不会与 不同,在文件中突出显示搜索的字符/
  • ft允许搜索特点
  • /将允许使用模式或更长的字符串,但不会将其包括在内,例如t

相关内容