Vim:如何使用unix命令输出作为文件名保存到?
我想在保存时使用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
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
:保存文件后运行命令,而不是运行命令以获取要保存的文件名。注意措辞。我想要单独的解决方案来获取要保存到的文件名,并实际保存文件,所以这样更好。谢谢。我想要单独的解决方案来获取要保存的文件名,并实际保存文件,所以这样更好。谢谢