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