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