8

如何将寄存器的内容通过管道传输到外部命令的标准输入?我凭直觉尝试了以下方法,但它不起作用(尽管可以说明我的需要):

:"0w !some_command
4

1 回答 1

12

如果寄存器的内容没有碰巧包含 NULL,那么它很简单

call system('some_command', getreg('r', 1, 1) + (getregtype('r') isnot# 'v' ? [''] : []))

. 如果您知道自己没有可以用来@r代替getreg()调用的 NUL,则此表格还将保留可能恰好存在于寄存器中的 NUL。请注意,getreg('r', 1, 1)即使您以逐行模式复制文本,也不会有尾随换行符,这就是我写+ (getregtype('r') isnot# 'v' ? [''] : [])添加它的原因(表单@r没有这个问题)。

于 2012-05-28T09:29:19.947 回答