是否可以在 Vim 中并排查看两个文件?如果是这样,我如何设置我的编辑器来做到这一点,有没有办法diff
在 Vim 中的两个文件之间?
我知道:next
和:prev
命令,但这不是我所追求的。串联查看这两个文件真的很好。
max*_*zig 66
打开并排视图:
Ctrl+w v
Run Code Online (Sandbox Code Playgroud)
它们之间的变化:
Ctrl+w h or l
Run Code Online (Sandbox Code Playgroud)
如果需要类似 diff 的视图,请查看 vim 包中的vimdiff命令:
vimdiff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)
Ale*_*ach 58
您还可以在分屏模式下打开 vim,-O
选项为:-
vim -O file1 [file2 ...]
Run Code Online (Sandbox Code Playgroud)
然后要打开差异模式,您需要:diffthis
在每个窗格中运行命令。
另一个用例场景是,如果您已经在 vim 中打开了一个文件,并且您想打开它并将其与另一个文件进行比较。然后你可以使用以下 vim 命令:-
:vs otherfile (open otherfile in vertical split screen)
:diffthis (turn on diff mode in original file)
Ctrl+w l (swap to newly opened file)
:diffthis (turn on diff mode in opened file)
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用 vim 命令关闭每个窗格中的差异模式:diffoff
。
编辑
还有另一个没有提到的标准:-
vim -d file1 [file2 ...]
Run Code Online (Sandbox Code Playgroud)
这相当于vimdiff
直接调用。
虽然已经回答了如何启动 diff,但如何在所有窗口中停止它也很重要。为了完整起见,我重复@Bernhard 的评论。
在 2 个窗口中打开的两个文件的开始和停止差异(适用于垂直和水平分割):
:windo diffthis
:windo diffoff
Run Code Online (Sandbox Code Playgroud)
这可以缩短为
:windo difft
:windo diffo
Run Code Online (Sandbox Code Playgroud)
或者
:windo difft
:diffo!
Run Code Online (Sandbox Code Playgroud)
请注意,打开显示插件内容的窗口会导致问题。之前很接近的东西,比如 NERDtree、minibufexplorer++ 等。
自定义命令:
为了简化操作,您可以将自定义命令添加到您的~/.vimrc
:
command! Difft [ClosePluginWindow |] windo diffthis
command! Diffo windo diffoff
Run Code Online (Sandbox Code Playgroud)
可以[ClosePluginWindow |]
选择关闭您通常使用的插件窗口。对于 NERDtree 例如,这将是NERDTreeClose |
.
归档时间: |
|
查看次数: |
142638 次 |
最近记录: |