Похоже на ограничение в omnicppcomplete, но я поднял отладчик vim и нашел его.
Откройте autoload / omni / cpp / utils.vim, перейдите к строке 518, должно выглядеть так:
for token in tokens
if state==0
if token.value=='>'
let parenGroup = token.group
let state=1
elseif token.kind == 'cppWord'
let szResult = token.value.szResult
let state=2
elseif index(['*', '&'], token.value)<0 "This is line 518
break
endif
И измените эту строку на:
elseif token.value != 'const' && index(['*', '&'], token.value)<0
Или вот команды vim, чтобы сделать это =):
/index(\['\*', '&'],<CR>itoken.value != 'const' &&<ESC>:w
Я попытаюсь отправить этосопровождающему omnicppcomplete, но это отчасти хакерски, не знаю, попадет ли он. Возможно, мне удалось проверить, есть ли token.kind == 'cppKeyword', но я решил ошибиться на стороне изменениякак минимум.