如何用nvim -d/vimdiff像Git仓库中那样合并Arch的pacnew文件?
用Vimdiff像Git一样合并pacman.conf.pacnew文件
当然可以!Vimdiff本身就支持类似Git的交互式合并操作,你已经打开了对比窗口,接下来可以用这些快捷键完成合并:
- 窗口切换:按
Ctrl+w w在pacman.conf和pacman.conf.pacnew两个窗口间来回切换 - 单条差异合并:
- 如果你想保留
pacnew里的某行内容,先切换到pacnew窗口,把光标移到差异行,按dp(diff put),就能把该行内容同步到pacman.conf里 - 如果你想保留现有
pacman.conf里的内容,切换到pacman.conf窗口,光标移到差异行,按do(diff obtain),用当前行内容覆盖pacnew对应行(通常我们只需要修改原文件,这个操作主要用来确认保留原有配置)
- 如果你想保留
- 批量处理差异(谨慎使用):
- 如果你确定要全盘接受
pacnew的所有更改,在pacnew窗口执行:1,$diffput,会把所有内容同步到原文件 - 反之,要全盘保留原文件内容,在原文件窗口执行
:1,$diffget
- 如果你确定要全盘接受
- 完成合并:处理完所有差异后,切换到
pacman.conf窗口,执行:wq保存退出。确认配置没问题后,就可以删除pacman.conf.pacnew文件了
这种逐行选择保留内容的方式,和Git解决冲突时手动编辑冲突块的逻辑完全一致,只不过Vimdiff用分窗口的形式更直观地展示了两处文件的差异。
内容的提问来源于stack exchange,提问作者MaKaNu
相关产品推荐
相关产品推荐

