如何在gVim for Windows中编写函数或宏以向系统调用发送参数?

如何在gVim for Windows中编写函数或宏以向系统调用发送参数?,windows,macros,vim,Windows,Macros,Vim,有用的命令 :r!date 在gVim for Windows(不是Cygwin的gVim)中没有那么有用,因为Windows有自己的日期函数,它不满足我的需要 比如 :r!c:\cygwin\bin\date 那太好了。但这是一个很大的类型。考虑到我可能希望以这种方式调用一些东西,编写一个函数会很好,我可以传递一个参数foo,然后运行它 :r!c:\cygwin\bin\foo 最好的方法是什么?应该是: 永久:存储在.vimrc或某些启动文件中 以尽可能少的按键执行 任何关于创建映射的

有用的命令

:r!date
在gVim for Windows(不是Cygwin的gVim)中没有那么有用,因为Windows有自己的日期函数,它不满足我的需要

比如

:r!c:\cygwin\bin\date
那太好了。但这是一个很大的类型。考虑到我可能希望以这种方式调用一些东西,编写一个函数会很好,我可以传递一个参数
foo
,然后运行它

:r!c:\cygwin\bin\foo
最好的方法是什么?应该是:

  • 永久:存储在
    .vimrc
    或某些启动文件中
  • 以尽可能少的按键执行
  • 任何关于创建映射的好地方的建议,我们都将不胜感激

    谢谢

    :h strftime()


    否则,很久以前,我写这篇文章是为了在*nix或win32 gvim上使用cygwin的bash或$COMSPEC as&shell从vim执行外部程序。

    我认为,对于日常使用来说,这是一个更简单的解决方案(特别是如果您是 只对许多类似系统的命令中的一个感兴趣)是 创建自定义同义词命令:

    :command! -nargs=1 -range=% RR <line1>,<line2>read! c:\cygwin\bin\<args>
    
    然后在创建命令时指定该函数的名称:

    :command! -nargs=1 -complete=custom,RRComplete -range=% RR <line1>,<line2>read! c:\cygwin\bin\<args>
    
    :命令-nargs=1-完成=自定义,RRComplete-范围=%RR,读取!c:\cygwin\bin\
    
    具体地说,类似于
    :exe“normal!o”。strftime(“%c”)。“\\e”
    将是等效的,除非您知道更好的方法?
    :command! -nargs=1 -complete=custom,RRComplete -range=% RR <line1>,<line2>read! c:\cygwin\bin\<args>