强制vimdiff包裹线?

时间:2013-05-30 15:42:56

标签: vim wrapping vimdiff

在VIM中区分2个文件时,我更喜欢要包装的行。但是,vimdiff默认设置为off。

有没有办法为每个差异自动设置换行?

6 个答案:

答案 0 :(得分:32)

我使用以下内容:

autocmd FilterWritePre * if &diff | setlocal wrap< | endif
在生成的差异写入缓冲区之前立即触发

FilterWritePresetlocal wrap<复制wrap的全局值。当然,也可以简单地强制setlocal wrap

答案 1 :(得分:22)

您可以将以下内容放入vimrc。

au VimEnter * if &diff | execute 'windo set wrap' | endif

答案 2 :(得分:14)

当vim已经启动时,在每个拆分窗口文件上启动diff和wrap的命令:

:diffthis
:set wrap

然而,diff + wrap显示不正确:

如果你在一个文件上有一个长行,而另一个文件上有一个短行或缺失行,那么长行将占据第一行的2行,短行或缺失行仅占用1行在第二面。

这会导致2个文件的垂直移位。当然,颜色有助于在视觉上弥补这种转变。但是在几行差异中,移位可能高于窗口的高度,使得差异难以理解。

所以问题还没有完全解决...... 请告知。

答案 3 :(得分:4)

你可以运行这个

vimdiff -c 'set wrap' -c 'wincmd w' -c 'set wrap' file1 file2

答案 4 :(得分:3)

我必须为一个演示解决这个问题,我希望vimdiff在从某个终端发起时只包装

我终于使用原油了:

alias vimdiff='vimdiff +"windo set wrap"'
vimdiff file.orig file

答案 5 :(得分:1)

如果您有更多文件,并且不想在vimrc中将其永久保存

vimdiff -c 'windo set wrap' file1 file2 file3 [file4]

或者在打开vim后仅windo set wrap