背景
最近在用pycharm写代码时在原有的工程上新加功能 发现需要对很多行进行同一个新增数据的处理。
这个情景偶然性比较强,可能被借鉴的几率不大,就记录下来权当自己的收获
如何实现
首先需要在 需要插入同一行代码 的区域找到相似点,既然需要进行同样的插入操作 那么上下文中应该也是有相似的过程的 比如我的代码中需要插入的位置后都有如下代码
self.stack.top().addchild(node)
我要执行的操作是在每个压栈动作前给这个元素再设置一个值 而这个值是由栈顶元素提供的,也就是从压入栈的第一个元素开始让后面的元素一直继承这样一个数据 而其他数据不一样 比如
node.input = self.stack.top().input
而我能立刻想到的办法就是
ctrl+r replaceall
于是进行如下操作
在最右边的三个点扩展选项里把正则表达式选项 regex 勾上(这里不用正则表达式也可以 里面不转义就是了 只是先用了\n替换的才需要 不过并不能一键对齐 所以还是用空格加不转义的代码更省事
就当顺便再温习一下正则表达式的用法哈哈)
然后下面输入的两句代码用一个空格隔开
为什么要用空格隔开呢?
python替换以后会发现每个地方都报错了
这是因为python有严格的缩进标准 不需要分号结尾
java的话不会报错 因为你代码里会打分号
接下来是重点:
空格隔开而不是恰当的回车和缩进会导致报错 而pycharm有一个快速格式化代码的功能
如果你没改过快捷键的话就是 ctrl + alt + L
按一下立马神清气爽~~~
而java代码的话不会报错只是不美观 同样的快捷键一键清爽~~~
另:idea pycharm clion都是jetbrains的产品
大部分默认设置都是一样的
所以做个总结
如果需要批量在不同位置插入相同代码 replace的时候两行代码中间加一个空格
替换后做一个reformatcode(也就是快捷键ctrl + alt + L)就行了
over~~~