如何打开vim并自动将日期写入文件?

时间:2018-07-05 00:09:02

标签: vim

如果我在vim :r !date中运行它,它将从date命令中读取

如何在vim的-c选项中运行此代码?

我尝试过vim -c ":r !date" myfile.txt,但得到

`bash: !date": event not found`

我尝试过vim -c "r !date" myfile.txt,但得到

`bash: !date": event not found`

我尝试过vim -c ":r date" myfile.txt,但我得到了

Error detected while processing command line:
E484: Can't open file date

1 个答案:

答案 0 :(得分:4)

!是bash中的特殊字符,应转义。否则,请使用单引号。一些替代方法:

vim -c 'r!date'
vim -c r\!date
vim +'r!date'
vim +r\!date

请注意,所有这些都将在日期之后留下一行。如果您只想以一行作为开始文件,以这一行作为日期,则可以使用:

vim +.\!date
vim +'.!date'

当然也可以是-c的变体。

vim -c '.!date'

要将日期添加到文件末尾:

vim +'$r!date' file
vim -c '$r!date' file

要在日期之前添加额外的换行符,您可以添加一个空的bash回声:

vim +'$r! echo ; date' file

可以通过在读取之前添加一个额外的命令来执行更普通的Vim方法,以执行正常模式序列“ Go”(光标的最后一行然后换行)。在这种情况下,由于光标将已经位于正确的位置,所以不需要在读取命令处进行范围调整

vim +'normal Go' +'r!date' file