Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:如何使用unix命令输出作为文件名保存到?_Vim_Command - Fatal编程技术网

Vim:如何使用unix命令输出作为文件名保存到?

Vim:如何使用unix命令输出作为文件名保存到?,vim,command,Vim,Command,我想在保存时使用unix命令。命令返回文件路径。如下图所示: pseudo code :w !command # I name this command 'mami' $ MAMI_DIR=~/work echo $MAMI_DIR/$(date "+%Y-%m-%d-%H-%M-%S").txt #=> /Users/sane/work/2012-09-13-01-58-01.txt 但我的exec仅返回字符串或错误: :w !mami #=> This show only

我想在保存时使用unix命令。命令返回文件路径。如下图所示:

pseudo code
:w !command

# I name this command 'mami'
$ MAMI_DIR=~/work echo $MAMI_DIR/$(date "+%Y-%m-%d-%H-%M-%S").txt
#=> /Users/sane/work/2012-09-13-01-58-01.txt

但我的exec仅返回字符串或错误:

:w !mami
#=> This show only file path, /Users/sane/work/2012-09-13-01-58-01.txt and said "press key"
:w !$(MAMI_DIR=~/work echo $MAMI_DIR/$(date "+%Y-%m-%d-%H-%M-%S").txt)
#=> This return value 127

我如何做到这一点?这是vim脚本的区域吗?请给我提个建议。

就让
mami
做吧:

MAMI_DIR=~/work cat >$MAMI_DIR/$(date "+%Y-%m-%d-%H-%M-%S").txt

然后
w!妈咪

只要做
妈咪
就行了:

MAMI_DIR=~/work cat >$MAMI_DIR/$(date "+%Y-%m-%d-%H-%M-%S").txt

然后
w!mami

您可以使用反勾号执行此操作:

:w `mami`

可以使用反勾号执行此操作:

:w `mami`
你能行

:w `mami`
实现你想要的。实际上您所做的是将输出管道化到
mami
命令。

您可以这样做

:w `mami`

实现你想要的。实际上,您所做的是将输出管道化到
mami
命令。

您请求的标题(在我修复它之前)是
autocmd BufWritePost{pattern}!mami
:保存文件后运行命令,而不是运行命令以获取要保存的文件名。小心措辞。你要求的标题(在我修复它之前)是
autocmd BufWritePost{pattern}!mami
:保存文件后运行命令,而不是运行命令以获取要保存的文件名。注意措辞。我想要单独的解决方案来获取要保存到的文件名,并实际保存文件,所以这样更好。谢谢。我想要单独的解决方案来获取要保存的文件名,并实际保存文件,所以这样更好。谢谢