在 VIM 中区分 2 个文件时,我更喜欢换行。但是,vimdiff 默认设置 wrap 为 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]
或仅windo set wrap
当 vim 打开时