如何将文本从bash附加到vim?

如何将文本从bash附加到vim?,bash,vim,editor,subshell,Bash,Vim,Editor,Subshell,我知道r将bash输出中的文本附加到游标下的vim的命令。例如,在vim中发出此命令: :r! printf "abcd\n" 将“abcd”附加到vim缓冲区中。但不知何故,我无法在涉及子shell的情况下进行类似的操作。在文件a.sh中,我发布: :r! printf "This file was created on %s" $(date +%m/%d/%y) 结果是 This file was created on a.shs 从文件名创建的

我知道
r将bash输出中的文本附加到游标下的vim的命令。例如,在vim中发出此命令:

:r! printf "abcd\n"
将“abcd”附加到vim缓冲区中。但不知何故,我无法在涉及子shell的情况下进行类似的操作。在文件
a.sh
中,我发布:

:r! printf "This file was created on %s" $(date +%m/%d/%y)
结果是

This file was created on a.shs

从文件名创建的一些废话。为什么?(在普通终端上,没有这样的问题,所以我假设vim不能处理子shell?

:r!printf“此文件创建于\%s”“$(日期+\%m/\%d/\%y)”

此命令将打印字符串“此文件创建于\”,后跟当前编辑文件的名称。pfrintf不是命令,而是函数。传递bash命令的retrurn值不起作用。@zzeroo也是
/usr/bin/printf
@BDL
%
是当前文件的名称,如@zzeroo所述。
\%
只是逃避了它。
“$(日期…)”
意味着生成的标准输出作为单个参数提供给
/usr/bin/printf
,而不是更多,如“Fri”“Nov”“13”等。