我是 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 - 自动打开完成弹出菜单