[英]How to create custom vim command with shell command
我经常用今天的日期创建新文件。 所以,我想让它成为一个调用 shell date
命令的命令。 我使用的date
命令是:
date +%Y-%m-%d-%B%d).md
我试图在我的.vimrc
中使用这个自定义命令从 Vim 中调用这个相同的 shell 命令:
command Post e !date +%Y-%m-%d-%B%d.md
但这不起作用,因为%
表示 Vim 中的当前文件名,并且没有创建所需的文件名。
您可以使用内置的:help strftime()
函数代替date
命令。 这使得该命令更具可移植性,并且由于该函数是在:edit
执行之前评估的,因此您不会得到:help cmdline-special
的不良副作用。
:command! Post execute 'edit ' .. strftime('%Y-%m-%d-%B%d') .. '.md'
我同意@romainl 使用内置函数的想法是一种比仅在 shell 中委托更好的方法。 为了显示如何打开 (:edit) 由 shell 命令生成的文件名将是这样的:
:command! Post execute 'let file=system("date +\\%Y-\\%m-\\%d-\\%B\\%d.md") | normal! :e ' .. file .. '^M'
:edit
命令之前调用 shell 命令,如果您执行以下操作: execute "normal! :e !date +%Y-%m-%d-%B%d.md"
date 命令不会进行评估,但只是禁止粘贴到:edit
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.