强制vimdiff包裹线?

问题描述 投票:30回答:6

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

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

vim wrapping vimdiff
6个回答
35
投票

我使用以下内容:

autocmd FilterWritePre * if &diff | setlocal wrap< | endif

在生成的差异写入缓冲区之前立即触发FilterWritePresetlocal wrap<复制wrap的全局值。当然,也可以简单地强迫setlocal wrap


24
投票

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

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

14
投票

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

:diffthis
:set wrap

但是,diff + wrap显示不正确:

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

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

所以问题还没有完全解决......请指教。


4
投票

你可以运行它

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

3
投票

我不得不为一个演示解决这个问题,我希望vimdiff只在从某个终端发布时才能换行。

我终于使用了原油:

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

1
投票

如果您有更多文件,并且您不希望在vimrc中使其成为永久文件

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

或者只是vizxswpoi一旦vim打开

© www.soinside.com 2019 - 2024. All rights reserved.