2016-08-24 81 views
2

当我在vim中打开一个文件时,我们称之为'file1.rb',这个文件通常以ruby语法高亮显示并且没有问题。在Vim中打开文件打开vim diff?

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

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

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

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

+0

你可以发布你的'.vimrc'吗?此外,只要你知道,你可以使用'diffoff'命令来解决这个问题,但我同意,如果你从不需要,它会更好。 – DJMcMayhem

+0

@DJMcMayhem请张贴这个答案,以便我可以标记它。非常感谢你,'diffoff'工作。为了再次启用它,我所要做的就是'diffthis'。如果你仍然想看到它,我可以发布我的.vimrc文件。 – csebryam

+0

当然,我可以将其作为答案发布,但实际上它更像是一种创可贴而非解决方案。如果vim自动以diff模式打开,那么出现了一些错误(很可能是你的'.vimrc') – DJMcMayhem

回答

1

Vim有一个内置命令来禁用比较模式,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 BufNew * diffoff 

但是,这绝对不是理想的解决方案。

还有导致它的原因的问题。快速浏览一下你的.vimrc显示很多的插件,但是我没有看到任何会导致它的东西。我90%确定问题来自其中一个插件,所以我会在您寻找问题时开始。此外,这个职位上的专用VIM网站将帮助你很多:

1

DIFF模式,或直接由:setlocal diff启用或者由:diffthis:diffsplit命令之一。

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

对于前者,您可以使用vim -V20vimlog捕获Vim会话的完整日志。退出Vim后,检查vimlog日志文件中的可疑命令;即搜索“差异”。