我正在编写我的第一个vim插件(viml + python)。该插件的一个命令是"GetStepCommand()“,它基本上是从远程数据源获取数据,我对数据进行了一点处理并将其复制到缓冲区中,这样用户就可以开始编辑它了。用户必须向"GetStepsCommand“提供一个参数,即数据所在位置的搜索路径,例如: /projects/procedure/step
现在,这条路可能很长,而且很容易错过拼写某些东西。所以我想为参数部分实现我自己的制表符补全。Vim已经负责通过Tab键自动完成命令,但它当然不知道如何完成参数(这件事我会自己解决)。
但首先我需要知道:-如果/如何在命令模式下拦截按键-获取/获取用户当前正在编写的命令行-测试是否处于命令模式或插入/查看模式-最后返回更新后的命令行(制表符已完成),用户可以在按键后继续在该命令行上书写。
任何指针,提示,文章,教程...也就是说,信息非常受欢迎
发布于 2012-09-28 16:57:37
当您的自定义命令的参数是文件系统路径时,只需将-complete=file添加到您的:command定义中,如下所示:
:command -nargs=1 -complete=file MyCommand echomsg <q-args>您不需要在命令行模式中截取按键(您也不应该这样做,因为这将导致与其他插件的不良交互!)Vim提供其他默认完成功能(参见:help :command-complete),甚至是一个自定义的,其中调用Vimscript函数来确定候选补全。
https://stackoverflow.com/questions/12636068
复制相似问题