【问题标题】:Customising word separators in vi在 vi 中自定义单词分隔符
【发布时间】:2010-09-18 12:34:24
【问题描述】:

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

有没有办法同时添加下划线_

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

【问题讨论】:

  • FWIW 你可以用ct_dest避免计数

标签: editor vi


【解决方案1】:

有没有办法同时添加下划线_

:set iskeyword-=_ 

【讨论】:

  • 我使用的是 vi,不是 vim,所以不是一个选项
  • 有什么理由使用 vi 而不是 vim?
  • 我猜你从来没有在偏执的 PHB 运行的封闭、高度变化的控制环境中工作过! :) 即安装 vim 将意味着一个痛苦的世界......
  • 我辞掉了那份工作,你付不起钱让我回去。
  • @JoeWatkins 我发布了关于'iskeyword' 的信息不是给你的,而是给所有led here by Google 的Vim 用户。
【解决方案2】:

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

【讨论】:

  • 只是 vi,不是 vim。不知道 ct - 这肯定会有所帮助,谢谢
【解决方案3】:

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

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

c,edest

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

【讨论】:

    【解决方案4】:

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

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

    或者您可以重新定义'iskeyword'(详情请参见:help iskeyword)。

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

      • 仅供参考,从 iskeyword 中删除下划线可能会弄乱语法突出显示。如果有人知道如何让 vim 将下划线视为非单词字符以用于导航目的而不是用于语法突出显示,请告诉我。
      • 可以使用插件来实现这个效果,例如camelcasemotion。
      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-18
        • 2011-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多