在VIM中区分2个文件时,我更喜欢要包装的行。但是,vimdiff默认设置为off。
有没有办法为每个差异自动设置换行?
我使用以下内容:
autocmd FilterWritePre * if &diff | setlocal wrap< | endif
在生成的差异写入缓冲区之前立即触发FilterWritePre
,setlocal wrap<
复制wrap
的全局值。当然,也可以简单地强迫setlocal wrap
。
您可以将以下内容放入vimrc中。
au VimEnter * if &diff | execute 'windo set wrap' | endif
当vim已经启动时,在每个拆分窗口文件上启动diff和wrap的命令:
:diffthis
:set wrap
但是,diff + wrap显示不正确:
如果你在一个文件上有一个长行,而另一个文件上有一个短行或缺失行,那么长行将占据第一行的2行,短行或缺失的行仅占用第二行的1行侧。
这导致2个文件的垂直移位。当然,颜色有助于在视觉上弥补这种转变。但是在几行差异上,移位可能高于窗口的高度,使得差异难以理解。
所以问题还没有完全解决......请指教。
你可以运行它
vimdiff -c 'set wrap' -c 'wincmd w' -c 'set wrap' file1 file2
我不得不为一个演示解决这个问题,我希望vimdiff
只在从某个终端发布时才能换行。
我终于使用了原油:
alias vimdiff='vimdiff +"windo set wrap"'
vimdiff file.orig file
如果您有更多文件,并且您不希望在vimrc中使其成为永久文件
vimdiff -c 'windo set wrap' file1 file2 file3 [file4]
或者只是vizxswpoi一旦vim打开