在Vim的在线手册中,:help DiffOrig
将显示建议的命令序列以获取当前编辑文件的更改。
这是:
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
我想知道0d_
的影响是什么。我在正常模式下尝试0d_
,它的工作方式与dd
类似,但我无法理解为什么会在这里使用。
答案 0 :(得分:8)
让我们解释一下:假设你有原始的foo.txt包含(带行号):
1 a
2 c
3 d
~
您在第1行和第2行之间添加了一行“b”:
:vert new
在垂直拆分中创建一个新的空缓冲区(:help :new
) :set bt=nofile
使其成为暂存缓冲区(:help 'bt'
)。注意:
1 a | 1 ·<cursor here
2 b | ~
3 c | ~
4 d | ~
~ | ~
:r #
在当前行后插入,备用文件(#)的内容,存储在文件系统中。您尚未保存其他缓冲区,因此您可以获得原始内容。 (:help alternate-file
)。
:help :r
告诉您它始终插入后。因此:
1 a | 1
2 b | 2 a
3 c | 3 c
4 d | 4 d
~ | ~
:0d_
删除第一行。为什么0
,我真的不知道,我宁愿
写下来:1d_
。 :help range
告诉:
当使用0(零)时,大多数命令将其解释为1
_
指定它进入黑洞寄存器。看到
关于:help :d
ex命令的:d
,它按行工作。
其余的很明显。