You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neovim中自动显示文件与其交换文件的差异?

在Neovim中查看交换文件与原文件的差异

手动临时查看差异(无需配置)

当看到E325提示时,先选择(Q)uit退出当前会话,在终端执行以下命令直接对比:

nvim -r /home/john/thesis.md -d /home/john/thesis.md

该命令会从交换文件恢复内容,并与原文件打开对比窗口,直观展示两者的差异。

也可以先将交换文件恢复到临时文件,再进行对比:

# 把交换文件恢复到临时文件
nvim -r /home/john/thesis.md -w /tmp/recovered.md
# 对比临时文件和原文件
nvim -d /tmp/recovered.md /home/john/thesis.md

完成查看后,清理临时文件和无用的交换文件即可。

自动显示差异(Neovim配置)

如果希望每次触发交换文件提示时自动弹出差异窗口,可添加以下配置:

Lua 配置(init.lua)

vim.api.nvim_create_autocmd("SwapExists", {
  callback = function(args)
    vim.v.swapchoice = "q" -- 跳过默认选择提示
    vim.cmd(string.format("recover %s", args.file)) -- 恢复交换文件内容
    vim.cmd(string.format("split %s", args.file)) -- 打开原文件到新窗口
    vim.cmd("diffthis") -- 为原文件开启对比模式
    vim.cmd("wincmd p") -- 切换到恢复内容的缓冲区
    vim.cmd("diffthis") -- 为恢复内容开启对比模式
  end,
})

Vimscript 配置(init.vim)

autocmd SwapExists * let v:swapchoice = 'q' | execute 'recover ' . expand('<afile>') | execute 'split ' . expand('<afile>') | diffthis | wincmd p | diffthis

配置生效后,打开带有交换文件的目标文件时,Neovim会自动跳过默认选择提示,直接分窗展示交换文件恢复内容与原文件的差异。如果需要保留选择灵活性,可修改配置逻辑增加确认步骤。

内容的提问来源于stack exchange,提问作者Jan Černý

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:22:24