Idea 插件 String Manipulation
文章目录
介绍
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 时间格式转换
递增/递减
- 支持递增递减所有找到的数字
- 复制选择文字后再递增递减所有找到的数字
排序
- 反序排列所有行
- 乱序排列行
- 按各种大小写排序
- 按照字符长度排序
- 按照 16 进制排序
- 按照分隔符排序
- 层级排序 Hierarchical sort · krasa/StringManipulation Wiki
- 乱序所有字符
- JSON 排序
对齐
- 插入空格将光标/选区对齐到一列
- 按照指定的分隔符按列对齐
- 将文本左对齐、居中对齐、右对齐
过滤/移除/清理/转换
- 过滤匹配项
- 过滤非匹配项
- 分组过滤,将匹配项与非匹配项分开
- 移除空格
- 将多个空格替换为单个空格
- 移除所有空格
- 只保留重复的行
- 移除空行
- 移除所有新行
- 最简化 JSON
- JSON 与 YAML 之间转换
自定义
Switch case
功能菜单支持自定义,可以根据需要勾选显示的大小写。
使用方法
- 默认绑定了快捷键
Alt+M
,按下后可以弹出整个功能菜单。 - 功能菜单的每一项都绑定了按键,可以快速按下按键触发功能。
- 功能菜单本身支持搜索,但是搜索只能搜索当前可见层级菜单。
- 虽然不支持在重命名窗口调用插件,但完全可以在外面使用插件改好名字后复制粘贴到重命名窗口。
视频介绍
这个插件的功能不便于用文字描述,作者录制的 Gif 与其他人发布的视频可以更好地介绍功能,强烈推荐观看。
作者录制的 Gif 在插件主页与 GitHub 页面都有。
中文介绍视频
英文介绍视频