如何将寄存器值输出到stdout,如:!vim中的echo命令?

时间:2017-02-04 05:49:48

标签: vim

我做到了:

:注册

"a   iabc

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

Thx in advanced!

2 个答案:

答案 0 :(得分:4)

:echo getreg('a')
  

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

     

结果是一个String,它是寄存器{regname}的内容。例如:

:let cliptext = getreg('*') 
     

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

     

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

答案 1 :(得分:1)

包装exe以在vim命令中使用getreg的值:

:exe ":!echo ".getreg('a')