如何在Vim中复制整个块?

26 投票
11 回答
20053 浏览
提问于 2025-04-15 14:53

在Vim中,有没有办法把一整块Python代码复制过来?

比如说一个 def 函数块、for 循环块、if 条件块等等……

11 个回答

9

这个很棒的插件套件 Python-mode 提供了一些很实用的 快捷键,可以帮助你在类、方法和函数块之间快速导航。

  • 要复制一个方法,可以按 yaM(如果只想复制方法内部的内容,可以按 yiM

  • 要复制一个类,可以按 yaC

还有其他一些方便的操作,比如可以用 ]] 在函数之间快速跳转。想了解更多,可以查看 完整的快捷键列表

14

如果你想复制所有内容,但不包括{,可以用yi{(或者yi})。如果想把大括号也包括在内,就用ya{(或者ya})。

这里的ia分别代表“内部”和“全部”。

如果你想复制一个单词,不管你在这个单词的哪个位置,可以用yiw

要复制括号里的内容,可以用yi);如果想把括号也包括在内,就用ya(

同样的操作也适用于双引号"或单引号',可以用yi"ya",或者yi'ya'

当然,你不仅仅可以复制。你还可以用diw来删除一个单词,或者用ciw来修改它,等等等等……

33

你可以用 y} 来复制一段文字。不过,如果这段文字中有空行的话,它就不会把所有的方法都复制过来。

撰写回答