【问题标题】:VSCodeVim delete all occurrences containing a patternVSCodeVim 删除所有包含模式的匹配项
【发布时间】:2018-12-26 15:55:32
【问题描述】:

我想使用 VSCodeVim 插件从文档中的所有单词中删除一些前缀。例如:

var someVarOne, someVarTwo, someVarThree;

删除前缀'some'并获取:

var VarOne, VarTwo, VarThree;

提前致谢!

【问题讨论】:

    标签: vim visual-studio-code vscodevim


    【解决方案1】:

    由于已经提到了替换方法,你可以试试这个简单的方法:

    1. 使用 v 键直观地选择要替换的单词(这里是“some”)。
    2. 将多个光标放在所有出现单词“some”的位置 Ctrl+Shift+LCmd+Shift+L 键。
    3. 使用 d 键删除视觉选择的部分,该键代表 删除

    【讨论】:

      【解决方案2】:

      试试:

      %s/some\(Var\w*\)/\1/g
      
      • \(...\) 定义一个组
      • \w* 一个或多个单词字符
      • \1 替换为第一组(Var\w* 匹配的任何内容)

      【讨论】:

        【解决方案3】:

        假设你的 var 是你展示的 camelCase 并且只有“some”字是已知的(即“Var”可能会改变)试试这个正则表达式:

        some(([A-Z][a-z]*)+)
        

        并替换为\1

        regex demo.

        适用于

        var someVarOne, someVarTwo, someVarThree, someOtherVar, someVar, 一些东西;

        变种一些;

        制作:

        var VarOne、VarTwo、VarThree、OtherVar、Var、Thing;

        变种一些;

        【讨论】: