如果我在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
答案 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