[英]Executing a function inside quotes in vim/neovim
我想要这样的工作:
imap key1 func1() ? "key2 func2()" : "key3"
我目前使用的映射是:
imap <expr> <CR> pumvisible() ? ((complete_info()["selected"] == "-1") ? "\<C-n>\<C-y>\<Plug>(ultisnips_expand)" : ncm2_ultisnips#expand_or("\<C-y>",'n')) : "\<CR>"
当弹出菜单可见但我没有选择任何建议时,按 Enter 将 select 第一个元素,如果它是一个片段,那么片段将被展开,如果我已经选择了一个建议,那么按 Enter 将关闭弹出菜单并展开这是一个片段,如果弹出菜单不可见,则 enter 的行为就像它应该的那样。
但问题是每次执行"\<Cn>\<Cy>\<Plug>(ultisnips_expand)"
时,弹出菜单都不会关闭。 因此,我尝试将\<Plug>(ultisnips_expand)
替换为ncm2_ultisnips#expand_or("\<Cy>",'n')
,因为前一个仅扩展代码段,但如果扩展失败,后一个将关闭菜单。
那么如何在"<Cn>"
之后添加 function ncm2_ultisnips#expand_or("\<Cy>",'n')
? 简单地执行"<Cn>ncm2_ultisnips#expand_or("\<Cy>",'n')"
是行不通的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.