如何在Vim中将寄存器值输出到stdout :: echo命令?

Big*_*eld 1 vim

我已经做到了:

:reg a

"a   iabc
Run Code Online (Sandbox Code Playgroud)

我想在寄存器类似:w !xargs -n1 echo命令中输出该值,但并非所有缓冲区内容都只是寄存器值。

谢谢高级!

Ry-*_*Ry- 5

:echo getreg('a')
Run Code Online (Sandbox Code Playgroud)

getreg([{regname} [, 1 [, {list}]]])

结果是一个字符串,它是register的内容{regname}。例:

:let cliptext = getreg('*') 
Run Code Online (Sandbox Code Playgroud)

如果{regname}未设置,则结果为空字符串。

getreg('=')返回表达式寄存器的最后一个求值。(供在地图中使用。)getreg('=', 1)返回表达式本身,以便可以使用恢复它setreg()。对于其他寄存器,多余的参数将被忽略,因此您可以随时使用它。如果{list}存在且为TRUE,则结果类型将更改为List。每个列表项都是一个文本行。如果您关心寄存器中可能存在零字节,请使用它:如果没有第三个参数,则NL和零字节都表示为NL(请参阅NL-used-for-Nul)。未设置寄存器时,将返回一个空列表。如果{regname}未指定,v:register则使用。