我想在保存文件之前查看对文件所做的更改。可以这样做吗?最好不使用 vimrc 或安装其他软件?我在 Windows 上使用 Neovim。
我尝试了这里的一个答案:
https://stackoverflow.com/questions/749297/can-i-see-changes-before-i-save-my-file-in-vim
即:
:w !diff % -
这是我得到的:
'diff' is not recognized as an internal or external command,
operable program or batch file.
shell returned 1
我还尝试使用适用于 Linux 的 Windows 子系统通过 bash 执行命令:
:w !bash -c 'diff % -'
结果:
diff: -: Illegal seek
shell returned 2
我尝试了 Windows 命令行和 Windows PowerShell,以上两种方法都得到了相同的结果。我看到还有其他答案包括编辑 vimrc 或安装其他软件,但我想先看看是否有一种简单的方法可以做到这一点。
答案1
我还没有弄清楚错误的原因,但我确实找到了一个简单的解决方法:
:w !bash -c "cat - | diff % -"
看起来 diff 正在尝试执行流不支持的查找。因此通过 cat 进行缓冲似乎可以解决问题。