58

vi 将破折号-和空格 视为dw和等命令的单词分隔符cw

有没有办法添加下划线_

我经常想更改包含下划线的变量名的一部分,例如更改src_branchdest_branch. 我最终计算了字符并使用s(like 3sdest),但它会更容易使用cw(like cwdest)。

4

6 回答 6

43

有没有办法添加下划线_

:set iskeyword-=_ 

什么是关键字,什么不是成员字符取决于语言。有关 iskeyword 使用的帮助:help iskeyword

于 2009-06-23T18:13:53.600 回答
25

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

于 2008-10-22T11:31:15.743 回答
6

在这种情况下,另一个不错的选择是使用camelcasemotion插件。

它添加了新的动作,b,e和,它们与、和,w类似地工作,除了它们识别 CamelCase 和 snake_case 词。有了它,您可以使用bew

c,edest

如果您的光标位于“src_branch”的第一个字符上,这将用“dest_branch”替换“src_branch”。

于 2012-05-14T18:56:55.247 回答
1

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

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

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

于 2008-10-22T11:27:37.183 回答
0

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

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

我的 .vimrc 有问题 ^| 和 ^",这是我设置的默认 iskeyword 的一部分,所以我更改为它们的 ascii 值并且它工作正常。我的主要修改是在默认设置的末尾添加 "^_" 以防止 vim 看到下划线作为单词的一部分。

于 2009-04-08T13:11:02.927 回答
-1

要删除到下一个下划线,请输入“df_” 要更改到下一个下划线,请输入“cf_” 注意:不要包含双引号。

于 2020-10-09T18:17:14.630 回答