notepad++无原生小驼峰转换功能,需借助python script插件编写脚本实现;正则替换分步操作易出错,在线工具虽快但不适用敏感数据场景。

Notepad++ 里没有原生小驼峰转换功能
Notepad++ 本身不提供 toCamelCase 或类似文本格式化命令,右键菜单和“编辑→文字操作”里找不到直接转小驼峰的选项。想靠内置功能一步到位,行不通。
用正则替换 + 手动预处理实现小驼峰
核心思路是:先统一分隔符(如空格、下划线、连字符)为换行或临时标记,再逐段首字母大写、去分隔符、首词小写。但 Notepad++ 的正则不支持回调函数,无法自动把每个单词首字母大写后拼接——所以必须分步手动干预。
- 先用
查找→替换把所有非字母数字字符(如_、-、空格)替换成换行符:[^a-zA-Z0-9]+→\n - 全选 →
编辑→文字操作→大写转换,让每行首字母大写(注意:这会把整行变大写,需后续修正) - 再用正则把换行符去掉:
\r?\n→ 空(但此时首字母全大写,不是小驼峰) - 手动删掉第一行的首字母大写(或用正则
^([A-Z])→\L$1,需启用“匹配大小写”和“扩展模式”)
这个流程容易出错:比如数字开头的词(user_id_2)会被拆成 userid2,而 2 大写后仍是 2,拼接成 UserId2 —— 符合小驼峰;但若原文有连续分隔符(user__name),会多出空行,得提前清理。
更可靠的做法:用 Python 脚本插件(Python Script)
装好 Python Script 插件后,可以写一段真正理解小驼峰逻辑的脚本。它能正确处理:HTTPServer → httpServer、XMLParser → xmlParser、user_id → userId。
示例脚本片段(粘贴到 Python Script 控制台运行):
import re
def to_camel_case(s):
parts = re.findall(r'[a-zA-Z0-9]+', s)
if not parts: return s
return parts[0].lower() + ''.join(x.capitalize() for x in parts[1:])
editor.replaceSel(to_camel_case(editor.getSelText()))
注意:re.findall 比单纯按分隔符切分更健壮;但若选中文本含多行,脚本默认只处理第一选区,需加循环遍历每行。
为什么不用宏录制或 NppExec?
宏只能回放固定操作序列,无法根据单词边界动态判断大小写;NppExec 虽可调外部命令,但 Windows 默认没装 Python,还要配路径、传参、捕获输出——反而比直接开个终端跑一行 python -c "..." 更麻烦。
真正省事的方式其实是:复制文本 → 切到浏览器打开任意在线驼峰转换工具(搜 “camel case converter”)→ 粘贴 → 复制回来。只要不涉及敏感数据,这比折腾插件更快。但如果你常处理代码标识符且不能外发,那 Python Script 插件才是唯一靠谱的本地解法。
小驼峰的边界情况很多,比如缩略词(parseXML 还是 parseXml)、数字位置、Unicode 字母——这些都得靠语义解析,Notepad++ 的纯文本引擎天生做不到。











