我今天开始使用vimdiff了,并希望在基于Windows的差异编辑器上做一些我认为理所当然的事情(比如扩展/折叠差异部分,有完整的文件扩展/只有差异,上面有3个上下文行或者以下等).我目前只知道以下命令:
键盘快捷键:
do - 从其他窗口更改到当前窗口.
dp - 将当前窗口中的更改放入另一个窗口.
]c - 跳转到下一个更改.
[c - 跳转到上一个更改.
CTRL+ W,w- 切换到另一个分割窗口(CTRL+ W,CTRL+ W做同样的事情,以防CTRL稍后放开密钥)
有人能指出我正确的方向,所以我可以复制类似的功能吗?
例如,如果我可以扩展/折叠差异周围的线条会很好.
我设置git diff包装到vimdiff,使用" Git Diff with Vimdiff "作为指南,除非有许多文件有变化,否则它按预期工作.
当有多个文件有变化并且我运行时git diff,它会打开第一个文件,在退出第一个vimdiff实例后,我会看到以下消息:
external diff died, stopping at filename
Run Code Online (Sandbox Code Playgroud)
这是一种与我以前完全不同的行为.我在过去使用SVN时有类似的设置,在对多个:wq文件进行区分时,我会查看第一个文件,然后编写并退出使用,下一个文件会有差异打开.
Git不是这种情况.我试过了:n[ext],但这样做并没有用原始文件填充左侧窗口,因此可以针对修改后的版本进行区分.
这样做时如何加载不同的colorscheme vimdiff.
我想要这个,因为我当前的colorscheme没有正确显示一些差异vimdiff,For.例如,某些差异显示为具有相同的fg/bg颜色.这使得很难理解差异.所以,每次我做vimdiff我必须做的事情:colorscheme some_other_scheme
这可以在.vimrc档案中完成吗?
场景:我打开了Vim并粘贴了一些文字.我打开第二个标签,:tabe然后粘贴其他文字.
目标:我希望第三个选项卡的输出相当于将两个文本都写入文件并打开它们vimdiff.
我能找到的最接近的是"将当前缓冲区与文件区diff分开",但不是两个打开但未保存的缓冲区.
我已经打开了两个文件.它们以垂直模式打开,旁边是下一个.我可以在不离开或关闭Vim的情况下立即区分这两个文件吗?
因此,实用程序Diff就像我想要的2个文件一样工作,但是我有一个项目需要一次比较多个文件,一次最多10个文件.这需要将所有这些文件并排放在一起.我的研究并没有真正发现任何东西,vimdiff似乎是迄今为止最好的,能够一次比较4个.
我的问题:是否有任何实用程序可以一次比较2个以上的文件,或者是一种破解diff/vimdiff的方法,以便它可以进行多重比较?我将要比较的文件相对较短,所以它不应该太慢.
提前致谢!
我正在使用vim -d file1 file2它以查看它们之间的差异.这工作正常,但我想忽略空格更改 - 它们与源代码文件无关.
Vim帮助声明以下命令将起到魔力:
set diffopt+=iwhite
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,此命令仅添加-b到diff工具命令行,并且只忽略尾随空格.diff的正确命令行键应该是-w,忽略所有空格更改.但我找不到如何直接从Vim修改diff命令行.当然我可以编译自定义差异,或用diff.sh替换差异,但这看起来有点难看:(.
有没有更好的方法来修改Vim如何与diff工具交互以显示文件差异?
我正在使用带有逃逸扩展的 vim .它有一个:Gdiff命令,它带你进入vimdiff模式,但关闭/退出vimdiff模式的正确/快速方法是什么?
即,假设我正在编辑Git存储库下的文件FooBar.txt.我启动:Gdiff,检查我在vimdiff中的更改,然后我想回来继续编辑FooBar.txt或任何其他文件:)
更新1:我将在下一个工作日试试这些快速组合:)
"vimdiff current vs git head (fugitive extension)
nnoremap <Leader>gd :Gdiff<cr>
"switch back to current file and closes fugitive buffer
nnoremap <Leader>gD :diffoff!<cr><c-w>h:bd<cr>
Run Code Online (Sandbox Code Playgroud)
UPDATE2:我当前的映射(仅关闭diff窗口!)
"vimdiff current vs git head (fugitive extension)
nnoremap <Leader>gd :Gdiff<cr>
"switch back to current file and closes fugitive buffer
nnoremap <Leader>gD <c-w>h<c-w>c
Run Code Online (Sandbox Code Playgroud)
此外,请帮助我决定以下是否应该是anwser:https://stackoverflow.com/a/15975201/275980
vimdiff ×10
vim ×9
diff ×6
buffer ×1
git ×1
html ×1
linux ×1
n-way-merge ×1
split ×1
tabs ×1
vim-fugitive ×1
windows-xp ×1