Чтобы заставить vim вызывать определенное поведение при нажатии клавиши, вам необходимо сопоставить клавишу с функцией.
Например, чтобы сопоставить ключ .
для вызова какого-либо типа завершения, когда в режиме INSERT
вам нужно сделать:
:inoremap <expr> <buffer> . MyFunction()
и затем функция должна будет оценить контекст, в котором она была вызвана, и представить соответствующий ответ пользователю.
Редактировать : Это основа работы clang complete
, упомянутой @honk.
Я не уверен, что вы можете настроить поведение omnifunc в соответствии с вашими потребностями, но по своему опыту я никогда не заходил слишком далеко. Как сказал @Mikhail, вам необходимо отслеживать вещи, которые на практике означают интерпретацию или даже выполнение кода в некоторой степени.