当我在vim中打开文件时,我们可以调用它' file1.rb',这个文件正常打开,使用ruby语法高亮显示,到目前为止没有任何问题。
当我打开' file2.rb'在新缓冲区中,它将两个缓冲区都变为vim diff
。
我可以来回切换缓冲区,但我看到的是每个缓冲区中打开的文件的vim diff。当我删除其中一个缓冲区时,我可以再次正常使用vim,而不会在方式中突出显示vim diff颜色。
目前我一次只打开一个缓冲区,这样我就不会遇到这个问题,但我希望同时打开这两个缓冲区,而不显示{{1}的文件。
我可以在哪里禁用这种奇怪的行为,或者我可以采取任何方式阻止这种情况发生?
答案 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
设置在我所有的缓冲区中。