如何将寄存器的内容传递给外部命令的标准输入?我直观地尝试了以下内容,但它没有用(可能有助于说明我的需要):
:"0w !some_command
答案 0 :(得分:11)
如果寄存器的内容没有包含NULL,则它就像
一样简单call system('some_command', @r)
。如果它恰好发生,因为使用寄存器作为变量会将它们全部转换为换行符(我不知道它们如何在内部表示,除了寄存器不像具有寄存器类型和C的结构那么简单的事实以NULL结尾的字符串)你不能使用这种方式,而是必须粘贴到临时缓冲区并使用:%w !
。如果您希望能够完整地将寄存器发送到some_command
完整,当寄存器恰好同时具有NULL(s)和其他内容,然后将换行符作为其最后一个字符时,它会变得更加棘手