0

我想在保存时使用 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

https://gist.github.com/3713132

# my expectation
:w !mami
#=> to save /Users/sane/work/2012-09-13-01-58-01.txt
# or
:mami
#=> to save /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 脚本的领域吗?请给我建议。

4

3 回答 3

4

你可以做

:w `mami`

达到你想要的。您实际上在做的是将输出管道传输到mami命令。

于 2012-09-13T17:54:34.213 回答
0

mami吧:

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

接着w !mami

于 2012-09-13T17:49:58.947 回答
0

你可以用反引号来做到这一点:

:w `mami`
于 2012-09-13T17:52:54.637 回答