在vi中自定义单词分隔符

vi对待破折号和空间   作为诸如dwcw命令的单词分隔符。

有没有办法添加下划线_以及?

我经常想更改包含下划线的variables名称的一部分,例如将src_branch更改为dest_branch 。 我最终计算字符和使用s (如3sdest ),但使用cw会更容易(如cwdest )。

如果你使用vim,你可以通过设置iskeyword选项( :he iskeyword )来改变它。 如果这不是一个选项,你总是可以使用ct_而不是计数。

有没有办法添加下划线_以及?

 :set iskeyword-=_ 

在这种情况下另一个好的select是使用camelcasemotion插件。

它增加了与bew类似的新动作bew ,除了它们识别CamelCase和snake_case字。 有了它,你可以使用

 c,edest 

如果你的光标位于“src_branch”的第一个字符上,这将会把“src_branch”replace为“dest_branch”。

您可以键入cf_dest_并保存计数部分。

编辑:或按照build议: ct_改变文字,直到下划线字符之前。 (我更多地使用f运动,所以对我来说更自然)

或者你可以重新定义'iskeyword':help iskeyword )。

我只是自己看这个,并将其添加到我的.vimrc:

 set iskeyword=!-~,^*,^45,^124,^34,192-255,^_ 

我的.vimrc与^ |有问题 和^“,这是我的设置默认iskeyword的一部分,所以我改变了他们的ASCII值,它的工作正常。我的主要修改是添加”^ _“到默认设置的结尾,以防止vim看到下划线作为一个词的一部分。