在寄存器("i
)中,我有一个相对于pwd
的一个或多个图像文件路径的字符串,我希望将其作为一组显示在xv
中。例如如果@i
包含说
' glosimgs/infcompcyme.jpg glosimgs/infcyme.jpg'
然后我希望得到与
相同的结果!xv glosimgs/infcompcyme.jpg glosimgs/infcyme.jpg
但无论如何我使用eval
和/或精心设计的引用方案尝试使用其中一种方法。将@i
未展开传递给bash,因为只要vim访问!
,它就会将该行的其余部分按原样传递给bash,或者vim展开@i
但对象为xv
}作为一个不存在的变量。
如何让vim扩展@i
,然后才将扩展的命令行传递给bash?
答案 0 :(得分:1)
我猜您是手动输入外部命令,并希望以某种方式填充寄存器(@i)的内容,然后您可以输入:
:!xv <c-r>i
<c-r>
是Ctrl-r
然后你得到你想要的东西,如果没问题,按回车。
Ctrl-r
在插入/命令模式下非常有用。您可能需要查看:h i_ctrl-r
以获得更有价值的用途。
答案 1 :(得分:1)
啊,但这确实有效 让@r =&#39;!xv&#39;。@ i @r