如何使用 inoremap 来处理多个字符?

如何使用 inoremap 来处理多个字符?

我是 ViM 自定义的新手。我几乎已经完成了自动完成功能,并可以按照我的意愿工作。以下是感兴趣的内容:

inoremap <expr> i (pumvisible() ? '' : 'i<C-n>') . '<Down>'

请注意,它捕获 i,然后仍然键入它(然后发送<C-n>)。我希望它像正则表达式一样工作。我怎样才能让它与任何单词字符一起工作?我不想为不同的字符分别制作多个副本。

答案1

映射中没有通配符;您必须使用循环创建所有这些映射:

for i in split('abcdefg...', '\zs')
    execute printf("inoremap <expr> %s (pumvisible() ? '' : '%s<C-n>') . '<Down>'", i, i)
endfor

请注意,有些插件可以在你输入时实现自动完成(你似乎在这里尝试这样做);我使用AutoComplPop - 自动打开完成弹出菜单

相关内容