在vim中编辑文件的每第三行

我在 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 链接的行为一起。也许是带有行号变量的递增功能或创建行为的其他一些代码。


holdtom
浏览 211回答 3
3回答

斯蒂芬大帝

录制宏qajopass<Esc>jq现在通过运行来执行它@a(下次您可以使用@@)。正如@midor 所说,它可以与以下:g形式的命令一起使用::g/def&nbsp;_fun\d\+/norm&nbsp;@a在所有匹配的行上执行这个宏。

互换的青春

要在每个函数定义下方放置带有缩进的“pass”,我将使用::g/^def/put ='&nbsp; &nbsp; pass'^ ........... begining of each lineput ......... puts contents bellow挤压空行::g/^$/,/./-1j&nbsp;a global command the gets from each empty line ^$until next non-empty line minus one, performs a join command
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python