如何将外部命令的输出用作 tabnew 的参数?

mer*_*011 4 vim bash

在 my 中.bashrc,我有以下简短脚本来获取当前日期。

D(){ date +'%F'; }
Run Code Online (Sandbox Code Playgroud)

在 my 中.vimrc,我有以下两行代码,以便我可以使用此功能。

set shell=bash\ --login
set shellcmdflag=-ic
Run Code Online (Sandbox Code Playgroud)

我已经vim通过验证以下命令是否将当前日期放入缓冲区来测试该函数是否在 中工作。

:r !D
Run Code Online (Sandbox Code Playgroud)

但是,我想要做的是使用此 bash 函数的输出作为参数,tabnew以便我可以在新选项卡中打开由当前日期命名的文件。

:tabnew !D
Run Code Online (Sandbox Code Playgroud)

不幸的是,此命令的行为是创建一个新选项卡,其文字文件名!D不是输出。

如何将外部命令的输出作为参数来tabnew代替?

rom*_*inl 6

反引号扩展可用于在 Vim 命令中插入外部命令的输出,一般作为参数:

:tabnew `date +'\%F'`
Run Code Online (Sandbox Code Playgroud)

或者:

:tabnew `D`
Run Code Online (Sandbox Code Playgroud)

:help backtick-expansion