在Vim中打开文件打开vim diff?

时间:2016-08-24 19:30:50

标签: git vim buffer git-diff

当我在vim中打开文件时,我们可以调用它' file1.rb',这个文件正常打开,使用ruby语法高亮显示,到目前为止没有任何问题。

当我打开' file2.rb'在新缓冲区中,它将两个缓冲区都变为vim diff

我可以来回切换缓冲区,但我看到的是每个缓冲区中打开的文件的vim diff。当我删除其中一个缓冲区时,我可以再次正常使用vim,而不会在方式中突出显示vim diff颜色。

目前我一次只打开一个缓冲区,这样我就不会遇到这个问题,但我希望同时打开这两个缓冲区,而不显示{{1}的文件。

我可以在哪里禁用这种奇怪的行为,或者我可以采取任何方式阻止这种情况发生?

3 个答案:

答案 0 :(得分:1)

Vim有一个内置命令来禁用diff模式diffoff。来自:help diffoff

                            *:diffo* *:diffoff*
:diffo[ff]  Switch off diff mode for the current window.  Resets related
        options also when 'diff' was not set.

如果您只想快速修复,只要打开拆分,您就可以执行此操作,甚至可以进行映射或autocmd以使其更容易。也许像是

autocmd BufNew * diffoff

但这绝对不是理想的解决办法。

还有导致它的原因。快速浏览一下.vimrc显示很多插件,但我没有看到任何可能导致插件的内容。我90%肯定问题是来自其中一个插件,所以我会在你寻找问题时从那里开始。此外,专门的vim网站上的帖子将为您提供很多帮助:

答案 1 :(得分:1)

差异模式可以通过其中一个:diffthis:diffsplit命令启用,也可以直接通过:setlocal diff启用。

对于后一种情况,:verbose setlocal diff?可能会告诉您设置的位置(在其中一个受影响的窗口中执行时)。

对于前者,您可以使用vim -V20vimlog捕获Vim会话的完整日志。退出Vim后,检查vimlog日志文件是否有可疑命令;即搜索'diff'。

答案 2 :(得分:0)

在vim中打开其他文档时,有时会显示diff显示。仅当我在大型仓库中工作并且仍然不知道为什么会发生时才发生。无论如何,必须经历和:diffoff的每个缓冲区都是我不必痛苦的刺激因素。我编写了以下简短映射,以使我可以为所有缓冲区关闭它(我的Leader是逗号):

nnoremap <Leader>,ndf :windo :diffoff<CR>

所以...快速,,ndf一次将diffoff设置在我所有的缓冲区中。