如何在PyCharm中创建宏实现print(a)一键替换为print(f'{a=}')
PyCharm 一键转换普通print为f-string调试格式实现方案
方案1:自定义宏+正则替换(无需安装插件,适配旧代码转换)
你之前录制内置宏失败的原因是普通文本录制只会记录固定光标位移、固定字符输入,遇到不同长度变量名、不同缩进代码就会错位,录制时绑定正则替换逻辑就能稳定生效,操作步骤如下:- 依次点击菜单栏
Edit > Macros > Start Macro Recording开始录制宏 - 严格按顺序执行以下操作,不要点多余的按钮:
- 连按2次
Ctrl+W(macOS系统对应快捷键为Option+Up),选中当前光标所在的完整print语句行 - 按
Ctrl+R(macOS为Cmd+R)调出选中区域内的替换面板 - 点击替换面板上的
.*图标,开启正则匹配模式 - 在查找输入框填入:
print\((.*)\) - 在替换输入框填入:
print(f"{$1=}") - 点击
Replace All按钮完成替换,按Esc关闭替换面板
- 连按2次
- 点击菜单栏
Edit > Macros > Stop Macro Recording,给宏命名为print转f-string调试格式 - 打开
Settings > Keymap设置页,在宏分类下找到你刚保存的宏,绑定一个顺手的快捷键(比如Ctrl+Alt+Shift+P)即可
这个方案对单行单参数的print(a)、print(obj.attr)、print(func())这类场景适配完美,要是你经常用多参数print,可以自行微调正则规则适配
- 依次点击菜单栏
方案2:配置后置补全模板(适合新写代码时快速生成,无需事后替换)
如果你是写新代码的时候想快速输出调试打印,不用事后改旧代码,配个后置补全效率更高:- 打开
Settings > Editor > General > Postfix Completion设置页 - 选择Python语言,新建一个后置补全规则,触发关键词设置为
printf,模板内容填入:print(f"{$EXPR$=}") - 保存规则后,写完任意变量/表达式,比如写完
user_list,直接敲.printf按回车,就会自动生成print(f"{user_list=}"),不用手动敲f-string的括号和等号。
- 打开
方案3:使用Python效率插件
要是你不想自己写正则、配模板,直接安装Python开发增强类插件即可,这类插件一般都自带一键转换print为调试格式的功能,还能自动适配多参数、多行print、带前缀后缀的复杂print场景,适配性比自己写的正则规则更好,装好后直接在快捷键设置里绑定对应功能的快捷键就能用。
注意:不要用纯文本录制的宏做这类动态替换,这类宏没有语法识别能力,只要变量名长度变了、代码缩进不一样,替换位置就会完全错乱,必须搭配正则或者IDE的语法解析能力才能稳定运行。
内容的提问来源于stack exchange,提问作者u2gilles
相关产品推荐
相关产品推荐

