我在 vim 中为 python 项目制作了一个模板化的方法列表。我在每个方法之间添加了几行pass,现在想为每个方法添加一个- 在我实现该方法之前,这仍然是可解释的 python 代码。在 vim 中,我知道如何使用编辑空间上连续的文件行,:10,17s/<search regex>/<substitute>/但是在进行编辑以在方法之间添加空行之后,我需要pass每 3 行插入一个。我发现这样做的方法是使用管道和&通过: :10s/<search regex>/<substitute>|13&|16&等。我可能将 15 个 & 符号链接在一起以使其工作。有没有更简洁的方法可以在 vim 中获得这种行为?为了解决评论,这里是一个最小的例子,在文件 myfile.py 中我有:def _fun1(self):def _fun2(self):def _fun3(self):def _fun4(self):...etc在第 2 行、第 5 行、第 8 行,等等。我想插入pass(之前有 4 个空格以保持一致的间距),/我有这个,_fun15(self):所以想要得到没有 14 |lineNo&s 链接的行为一起。也许是带有行号变量的递增功能或创建行为的其他一些代码。
3 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
录制宏
qajopass<Esc>jq
现在通过运行来执行它@a
(下次您可以使用@@
)。
正如@midor 所说,它可以与以下:g
形式的命令一起使用:
:g/def _fun\d\+/norm @a
在所有匹配的行上执行这个宏。
互换的青春
TA贡献1797条经验 获得超6个赞
要在每个函数定义下方放置带有缩进的“pass”,我将使用:
:g/^def/put =' pass'
^ ........... begining of each line
put ......... puts contents bellow
挤压空行:
:g/^$/,/./-1j
a global command the gets from each empty line ^$
until next non-empty line minus one, performs a join command
添加回答
举报
0/150
提交
取消