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

the*_*trk 1 vim

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

我该如何在-cvim选项中运行它?

我已经尝试过vim -c ":r !date" myfile.txt但是我得到了

`bash: !date": event not found`
Run Code Online (Sandbox Code Playgroud)

我已经尝试过vim -c "r !date" myfile.txt但是我得到了

`bash: !date": event not found`
Run Code Online (Sandbox Code Playgroud)

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

Error detected while processing command line:
E484: Can't open file date
Run Code Online (Sandbox Code Playgroud)

sid*_*yll 5

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

vim -c 'r!date'
vim -c r\!date
vim +'r!date'
vim +r\!date
Run Code Online (Sandbox Code Playgroud)

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

vim +.\!date
vim +'.!date'
Run Code Online (Sandbox Code Playgroud)

-c当然也可以是变体。

vim -c '.!date'
Run Code Online (Sandbox Code Playgroud)

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

vim +'$r!date' file
vim -c '$r!date' file
Run Code Online (Sandbox Code Playgroud)

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

vim +'$r! echo ; date' file
Run Code Online (Sandbox Code Playgroud)

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

vim +'normal Go' +'r!date' file
Run Code Online (Sandbox Code Playgroud)