vi 将破折号-
和空格
视为dw
和等命令的单词分隔符cw
。
有没有办法添加下划线_
?
我经常想更改包含下划线的变量名的一部分,例如更改src_branch
为dest_branch
. 我最终计算了字符并使用s
(like 3sdest
),但它会更容易使用cw
(like cwdest
)。
有没有办法添加下划线
_
?
:set iskeyword-=_
什么是关键字,什么不是成员字符取决于语言。有关 iskeyword 使用的帮助:help iskeyword
。
如果您使用的是 vim,您可以通过设置iskeyword
选项 ( :he iskeyword
) 来更改它。如果这不是一个选项,您可以随时使用ct_
而不是计数。
在这种情况下,另一个不错的选择是使用camelcasemotion插件。
它添加了新的动作,b
、,e
和,它们与、和,w
类似地工作,除了它们识别 CamelCase 和 snake_case 词。有了它,您可以使用b
e
w
c,edest
如果您的光标位于“src_branch”的第一个字符上,这将用“dest_branch”替换“src_branch”。
您可以键入cf_dest_
并保存计数部分。
编辑:或按照建议:ct_
更改文本直到下划线字符之前。(我更多地使用这个f
动作,所以它对我来说更自然)
或者你可以重新定义'iskeyword'
(:help iskeyword
详情)。
我自己只是在看这个并将其添加到我的 .vimrc 中:
set iskeyword=!-~,^*,^45,^124,^34,192-255,^_
我的 .vimrc 有问题 ^| 和 ^",这是我设置的默认 iskeyword 的一部分,所以我更改为它们的 ascii 值并且它工作正常。我的主要修改是在默认设置的末尾添加 "^_" 以防止 vim 看到下划线作为单词的一部分。
要删除到下一个下划线,请输入“df_” 要更改到下一个下划线,请输入“cf_” 注意:不要包含双引号。