在VIM中区分2个文件时,我更喜欢要包装的行。但是,vimdiff默认设置为off。
有没有办法为每个差异自动设置换行?
答案 0 :(得分:32)
我使用以下内容:
autocmd FilterWritePre * if &diff | setlocal wrap< | endif
在生成的差异写入缓冲区之前立即触发 FilterWritePre
,setlocal 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