有没有neovim版本的vimdiff?

19

最近我开始使用nvim (neovim)。它通常运行良好,但是当我运行vimdiff时,我注意到我得到了启动错误,这些错误在我运行常规vim时也出现过。我已经修复了这些问题,以便vim和nvim都可以在我的系统上无错误运行,所以vimdiff现在可以正常工作了。但这让我想知道:是否有neovim版本的vimdiff?或者我应该同时维护vim和neovim,以便常规vim可以为vimdiff正常工作?


1
vimdiff 就像给 vim 加上 -d 选项一样。它甚至链接到普通的 vim。难道 neovim 没有 -d 吗?如果你将 vimdiff 符号链接到 neovim,会发生什么呢? - Gavin Haynes
我明白了。所以vim可执行文件的行为是基于arg[0]的名称有条件地进行的,如果它是vimdiff,那么就像传递了-d一样进行操作。如果我按照你的建议将vimdiff链接到nvim,则它只会像传递了两个文件的nvim一样运行(不进行差异比较)。创建一个nvimdiff也不起作用。我认为它必须没有这种条件性行为。我可以像你建议的那样使用-d。@GavinHaynes,如果您将-d建议发布为答案,我会接受它。 - firebush
4个回答

21

是的,您可以使用-d选项以差异模式打开nvim。


2
如果您使用Git,请在您的.gitconfig文件的[diff]部分中添加tool = nvimdiff - bcag2

3
我注意到在redit上有一个关于这个问题的问题:https://www.reddit.com/r/neovim/comments/6rvsa2/nvimdiff/ 那里的对话框确认没有相应的nvimdiff被发送。建议的解决方案是在您的bashrc文件中添加一个别名:
alias vimdiff='nvim -d'

我会做这个。


你曾经让这个工作过吗?无论是尝试这个建议还是在gitconfig中放置“tool = nvim -d”似乎都不起作用。 - oarfish
@oarfish:这个问题涉及在shell上使用nvimdiff,而不是配置git使用neovim。根据被接受的答案,我通过将vimdiff别名设置为nvim -d来使其工作。话虽如此,就git和nvim -d而言,这可能对您有所帮助:https://dev59.com/wXA65IYBdhLWcg3wogKe#61299449 - firebush
别名似乎没有意义,因为git在尝试启动nvim时无法访问shell别名。不过,我使用了自己答案中的解决方案使其正常工作了。 - Janus Troelsen

0
我目前正在使用以下的git配置,对我来说效果很好:
[diff]
    tool = nvimdiff
[difftool]
    prompt = false
[difftool "nvimdiff"]
    cmd = "nvim -d \"$LOCAL\" \"$REMOTE\""
[merge]
    tool = nvimdiff
[mergetool]
    prompt = true
[mergetool "nvimdiff"]
    cmd = "nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c 'wincmd w' -c 'wincmd J'"

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接