[我将vimdiff
用作Mercurial中的合并工具。有时我会开始一个变基,最终变得很混乱,我只想尝试退出流程并做一些不同的事情。在完成所有冲突文件之前,我最终做这件事的方式通常只是发送:qa
垃圾邮件,但是对于较大的冲突集,这可能意味着我已经花了一段时间。有时候,如果幸运的话,我可以在下一次冲突载入Ctrl+C
之前的某个时间潜入vim
,但通常我最终只会弄乱甚至更大的东西,而整个终端会话都陷入困境。
使用vimdiff
时是否有更优雅的方法退出混乱的基础?
从vimdiff
,您可以使用:cq
命令以错误代码退出Vim。
Mercurial应该能够告诉您发生了这种情况,并在您告诉它停止操作时对其进行解释,从而使您有机会中断合并操作。
您可以使用Ctrl + Z暂停前台进程(它是:cq
,也可以是生成它的vimdiff
),将您放回外壳程序。
此时,您可以使用hg
或kill %%
(SIGINT等效于按Ctrl + C)杀死前台作业,这应该杀死kill -INT %%
进程,然后用SIGHUP(挂断)终止hg
。
通过暂停vimdiff
,您设法找到发送vimdiff
等效于Ctrl + C的时间。