【发布时间】:2013-10-31 18:18:24
【问题描述】:
我很乐意使用 vim 作为我的默认提交编辑器,并且不想更改它。然而,当涉及到变基时,我发现自己压缩了几十个提交,我发现使用 Textwrangler 之类的交互式编辑器更容易(除了顶部提交之外的所有内容都用“squash”替换“pick”)。
有没有办法为一次性变基命令指定一个备用编辑器?
我知道在 vim 中我可以做到:
:%s/pick/squash/
但这也有它自己的小烦恼。
编辑 - 如 cmets 所述,您可以通过转到第二行并执行来非常有效地压缩除顶部提交之外的所有提交
:,$s/pick/squash/
(注意逗号和美元与原文不同)
【问题讨论】:
-
在 vim 中,您可以使用
:,$s/pick/squash/来更改从 当前行 到文件末尾的所有匹配项。 -
这是一个很好的提示,谢谢 Greg。是的,这就是我所暗示的“小烦恼”。
-
假设你有最新的 vim 版本或安装了 Tim Pope 的 vim-git 插件,你可以使用
:Cycle或:Squash命令。您甚至可能想要使用映射。也许使用:global命令::+,$g/./Squash -
请问:Cycle 和:Squash 是做什么的?我无法找到这些命令的文档。
-
我也大量使用“标记”。转到要更改的第一行,键入
ma(设置标记a),转到要更改的最后一行,键入:'a,.s/this/that/。单引号后跟一个标记字母表示“设置该标记的行”。
标签: git vim editor git-rebase