如何在Vim中区分行范围

时间:2015-09-17 23:21:03

标签: vim vi

我试图确定同一文件中的两个代码块是否相同。有没有办法在Vi / Vim中区分两个行范围?

1 个答案:

答案 0 :(得分:1)

我会创建两个空缓冲区(:vnew:new),将两个行范围粘贴在其中,然后:diffthis。例如,您可以定义:

:map q :vnew +put!a^M:new +put!b^M:diffthis^M^W<Down>:diffthis^M

如果要比较两个行范围,请分别选择并将它们放入寄存器ab中,然后键入q。这将垂直拆分窗口,水平拆分新窗口,在两个新窗口中粘贴寄存器ab,然后区分它们。

为了简化一下,您可以:

:map q y:vnew +put!a^M:new +put!^M:diffthis^M^W<Down>:diffthis^M

,第二行范围将是当前在可视模式下选择的范围。它节省了一些按键。