Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 对complete()的自定义操作_Vim - Fatal编程技术网

Vim 对complete()的自定义操作

Vim 对complete()的自定义操作,vim,Vim,在Atom IDE中,有一个称为“snippets”的功能,它允许通过键入特定的字符序列插入用户定义的代码块: 我根据Vim文档制作了一个小示例: inor <F5> <C-R>=ShowPopup()<CR> func! ShowPopup() call complete(col('.'), ['inc', 'main']) retu '' endf inor=ShowPopup() func!ShowPopup() 调

在Atom IDE中,有一个称为“snippets”的功能,它允许通过键入特定的字符序列插入用户定义的代码块:

我根据Vim文档制作了一个小示例:

inor <F5> <C-R>=ShowPopup()<CR>

func! ShowPopup()
        call complete(col('.'), ['inc', 'main'])
        retu ''
endf
inor=ShowPopup()
func!ShowPopup()
调用完成(列('.'),['inc','main']))
雷图“
endf


现在,当我在弹出菜单中选择
main
项并在插入模式下按Enter键时,我希望该项变成
int main(){}
。内置Vim功能是否可以实现这一点?

这是可能的。这只需要一些工作。通常以…结尾的工作。。。代码片段插件。是的,插件是由内置功能编写的


其思想是,完成函数触发一个事件,该事件用于执行实际替换。例如,请参阅vi.SE上的Q/A,其中我探讨了如何编写更动态的完成函数:

这是可能的。这只需要一些工作。通常以…结尾的工作。。。代码片段插件。是的,插件是由内置功能编写的

其思想是,完成函数触发一个事件,该事件用于执行实际替换。例如,请参阅vi.SE上的Q/A,其中我探讨了如何编写更动态的完成函数: