PyCharm录制播放宏未达预期效果,如何正确操作实现代码批量替换?
问题原因
宏回放异常的核心是你录制的操作依赖了固定行内容偏移量,没有做通用的光标定位逻辑,触发问题的常见原因有两个:
- 录制时你使用固定次数的方向键移动到年份
2017的位置,但两行的变量名长度不同(sequential_number_for_ordering比sequential_number长很多),回放时固定次数的方向键就会定位到错误位置,才会出现把{}插到行首缩进区域的问题 - 第一行修改完成后,你没有标准化光标跳转到下一行行首的操作,导致第二行修改时光标的起始位置和录制时的起始位置不一致,操作全部错位
调整方案
重新录制宏,所有光标定位操作都用搜索匹配代替固定次数的方向键移动,录制前先把光标放在待修改的第一行任意位置,按以下步骤操作:
- 按
Ctrl+F(Windows/Linux)/Cmd+F(Mac)调出查找框,输入BDKJ-,按回车直接定位到当前行的BDKJ-字符串位置 - 按3次右方向键,把光标移到
BDKJ-后面的第一个字符(也就是年份的首位) - 按4次Delete键删除4位年份
- 输入对应占位符:无参数名的format输入
{},带参数名的输入{year} - 按
END键跳转到当前行末尾,在逗号前输入.format(year) - 按1次下方向键跳转到下一行,再按
POS1(HOME)键回到下一行行首,作为宏的结束位置 - 停止录制并保存宏
后续回放时,只要把光标放在第一个待修改行的行首,逐次回放宏就能批量处理所有匹配的行,不会再出现错位问题。
内容的提问来源于stack exchange,提问作者guettli
相关产品推荐
相关产品推荐

