介绍

String Manipulation 是一款操作字符串的 Idea 插件,支持全系 Idea IDE,如 Rider、PyCharm、Android Studio 等等。

转换不同风格大小写,这个工作看起来是很容易的,但实际上做的时候极其容易出错,修改完正确大小写后还要在正确的地方添加修改连字符或下划线。这些工作就算是用模式编辑器 Vim 来做也比较麻烦,大部分时间会浪费在模式的切换与移动位置上。

越复杂的功能越需要容易使用,否则就会因为麻烦而放弃使用;就像重构一样,只有 IDE 支持强大的重构功能时,你才可能会不断地使用它,成本越低使用地越多。如果能将这些复杂的字符串操作抽象为单独的命令,那么就意味着人们使用成本大大降低,而且极大减少错误率。

这些字符串操作内置到 IDE 中,人们就可以在 IDE 中无缝使用且没有割裂感,要比相同功能的外部工具、网页、命令行等都方便。

功能强大的插件居然还是免费的,真是太棒了:

优点

2008/03/16 首次发布,到现在已经 14 年了,这意味着就算是用旧版本的 IDE 也可以使用此插件。支持最老的版本是 2008 年的 Idea 11.0。而且这些年在不断地维护着,生命力顽强。

另外,这款插件本身开源,这意味着如果有能力,可以自行添加需要的功能。

功能

提供对文本操作的各种功能。

下面简要翻译一下官方文档中的功能。

转换大小写

转换大小写格式并不是简单地将所有字符转换为大小写,而是根据规则将特定字母转换为大小写,并修改单词之间的连接字符。因此这种工作需要工具单独支持。

Switch case (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, First word capitalized, Words Capitalized, PascalCase)

转义/取消转义

  • 支持转义/取消转义 Java、JavaScript、C#、HTML、JSON、XML、SQL、PHP 字符串
  • 支持转义非 ASCII 字符为 \u 开头的 Unicode 值,也支持转换回来
  • 有了转义功能,在复制 JSON 之类的文本到代码里直接使用时就不用费劲地手动处理了

编码/解码

  • 支持编码为 MD5、SHA-1、SHA-256、SHA-512、SHA3-256、SHA3-512 16进制值
  • 支持编码为 URL、Base64、Hex
  • 支持 Unix 时间戳与 ISO 时间格式转换

递增/递减

  • 支持递增递减所有找到的数字
  • 复制选择文字后再递增递减所有找到的数字

排序

对齐

  • 插入空格将光标/选区对齐到一列
  • 按照指定的分隔符按列对齐
  • 将文本左对齐、居中对齐、右对齐

过滤/移除/清理/转换

  • 过滤匹配项
  • 过滤非匹配项
  • 分组过滤,将匹配项与非匹配项分开
  • 移除空格
  • 将多个空格替换为单个空格
  • 移除所有空格
  • 只保留重复的行
  • 移除空行
  • 移除所有新行
  • 最简化 JSON
  • JSON 与 YAML 之间转换

自定义

Switch case 功能菜单支持自定义,可以根据需要勾选显示的大小写。

使用方法

  1. 默认绑定了快捷键 Alt+M,按下后可以弹出整个功能菜单。
  2. 功能菜单的每一项都绑定了按键,可以快速按下按键触发功能。
  3. 功能菜单本身支持搜索,但是搜索只能搜索当前可见层级菜单。
  4. 虽然不支持在重命名窗口调用插件,但完全可以在外面使用插件改好名字后复制粘贴到重命名窗口。

视频介绍

这个插件的功能不便于用文字描述,作者录制的 Gif 与其他人发布的视频可以更好地介绍功能,强烈推荐观看。

作者录制的 Gif 在插件主页与 GitHub 页面都有。

中文介绍视频

英文介绍视频