Vimdiff:如何将特定函数内的所有更改从一个文件转移到另一个文件?

发布于 2024-11-09 02:26:50 字数 132 浏览 4 评论 0原文

在 Vimdiff 中,我知道我可以使用“do”或“dp”将更改从一个文件移动到另一个文件......但这些是针对个别更改的。如果我必须撤消特定范围/选择内的所有更改(例如撤消对特定函数的所有更改,但保持其余部分不变),有没有一种方法可以一次性完成?

In Vimdiff, I know I can use "do" or "dp" to move changes from one file to the other...but these are for individual changes. If I have to undo all changes inside a specific scope/selection (say undo all changes to a particular function, but leave the rest untouched), is there a way to do it in one go ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱花落人离去 2024-11-16 02:26:50

您可以使用视觉选择和 ex 命令 :diffget/:diffput

因此,例如,仅获取代码块当前内部的更改 ( { .. } )

Vi}:diffget<Enter>

放置两个封闭级别的更改,包括带括号的行:

V2a}:diffput<Enter>

请注意,由于这些是 ex 命令,因此动作是逐行的。当然,你可以使用任何范围,这样你就可以重复视觉范围,或者使用标记

:'a,'bdiffput

等。发挥你的想象力,这就是 vim :)

You can use a visual selection and the ex command :diffget/:diffput

So, for example to get the changes for just the current insides of a code block ( { ... } )

Vi}:diffget<Enter>

To put the changes for the two enclosing levels including the lines with the brackets:

V2a}:diffput<Enter>

Note that since these are ex commands the motions are linewise. Of course, you could use any range, so you can repeat the visual range, or use markers

:'a,'bdiffput

etc. Use your imagination, this is vim :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文