如果我在 vim 中有此文本,并且我的光标位于第一个字符:
www.foo.com
我知道我能做到:
cw
更改为第一个句点,因为 aword
(小写 w)以任何标点符号或空格结尾cW
改变整个地址,因为 aWord
(大写 w)仅在空格处结束
现在,如果我有这个:
stupid_method_name
并想将其更改为此?
awesome_method_name
两者都cw
改变cW
了整个内容,但我只想改变下划线之前的片段。
我的后备技术是c/_
,意思是“改变直到你在搜索中遇到下一个下划线”,但对我来说,这也会导致所有下划线都被突出显示为搜索词,这有点烦人。
是否存在像w
或W
这样的不包含下划线的说明符?
答案1
您可以这样做cf_
。f 不会突出显示搜索的字符。
ct_
如果您不想包含 _,也可以这样做。
答案2
将其放入你的 .vimrc 中:
set iskeyword-=_
然后 _ 将被视为单词边界(但不是 WORD 边界),并且 cw 可用于仅更改“awesome”,而 cW 可用于更改整个内容。
看:
:help iskeyword
和
:help word
了解更多信息。
答案3
驼峰式动作是一款非常方便的 vim 插件,它允许您在使用下划线或驼峰式表示法时在单词之间移动。使用此插件,您可以在许多传统的 vim 移动命令前面放置逗号,这将允许您将下划线或驼峰式表示法中的单词视为完整单词。
答案4
总结一下之前的所有答案:
没有要排除的说明符
_
您可以这样做cf_
。搜索到的字符(_
此处)将包含在替换字符串中。如果您不想包含搜索到的字符(此处),
也可以这样做。ct_
_
f
并且t
不会与 不同,在文件中突出显示搜索的字符/
。f
并t
允许搜索一特点/
将允许使用模式或更长的字符串,但不会将其包括在内,例如t