如何在Kate Text Editor中用正则表达式自动调整CNC代码空格格式
Kate自动处理CNC PRG文件空格的实现方案
方案一:使用Kate内置宏实现自动替换
- 步骤1:录制替换宏
- 打开任意测试用.PRG文件,点击顶部菜单「工具」→「宏」→「开始录制宏」
- 按下
Ctrl+R调出替换面板,填写如下配置:- 查找内容:
([0-9]{1,2})([A-Z]) - 替换为:
\1 \2 - 勾选正则表达式选项,点击「全部替换」
- 查找内容:
- 点击「工具」→「宏」→「停止录制宏」,将宏命名为
CNC空格补全保存到Kate默认宏目录
- 步骤2:配置打开PRG文件自动触发宏
- 打开「设置」→「配置Kate」→「快捷键」,搜索你保存的宏名称,可先设置一个顺手的快捷键实现一键触发
- 如果需要完全自动触发,可安装Kate的「事件驱动动作」插件,开启后配置规则:当文件后缀为
.PRG且文档打开完成时,自动执行上述宏即可。
方案二:预处理脚本方案(更稳定,适配所有编辑器)
如果不想折腾Kate插件配置,可以写一个简单的本地处理脚本,打开PRG文件前先自动执行替换:
# CNC代码空格补全脚本,保存为fix_cnc.py import re import sys def fix_cnc_file(path): try: with open(path, 'r', encoding='latin1') as f: raw = f.read() # 兼容原版正则,可根据需要调整匹配规则 fixed = re.sub(r'(\d{1,2})([A-Z])', r'\1 \2', raw) with open(path, 'w', encoding='latin1') as f: f.write(fixed) except Exception as e: print(f"处理失败: {e}") if __name__ == "__main__": for fpath in sys.argv[1:]: if fpath.lower().endswith('.prg'): fix_cnc_file(fpath)
配置方式:将.PRG文件的默认打开方式修改为你写的批处理/脚本文件,逻辑为「先执行fix_cnc.py处理目标文件,再调用Kate打开处理后的文件」即可。
正则优化建议
如果你遇到现有正则误替换的场景,可以调整为适配G代码结构的更精准规则:
- 查找规则:
([A-Z][+-]?\d*\.?\d+)([A-Z]) - 替换规则:
\1 \2
该规则只会匹配完整G代码指令后紧跟下一个指令的场景,避免误修改注释或其他内容。
内容的提问来源于stack exchange,提问作者PovilasCNC
相关产品推荐
相关产品推荐

