在 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代替?
反引号扩展可用于在 Vim 命令中插入外部命令的输出,一般作为参数:
:tabnew `date +'\%F'`
Run Code Online (Sandbox Code Playgroud)
或者:
:tabnew `D`
Run Code Online (Sandbox Code Playgroud)
见:help backtick-expansion。