Проблема в том, что Vim не знает, является ли line
строкой, массивом или каким-либо другим классом. В Vim нет глубокого синтаксического анализа. Vim не имеет представления о области видимости, если переменная или метод были определены и т. Д.
Это только предлагает похожие слова. Так что да, Vim в этом аспекте более ограничен, чем IDE. Именно поэтому Eclipse может предлагать ошибки при их вводе, а Vim не может.
Vim гораздо более прост: в некотором смысле, все является текстом и не обязательно рассматривается как "код".
Итак, вы правы, это одно из ограничений Vim.
Есть некоторые плагины для обхода этих ограничений (omnicpp использует ctags для определения области действия некоторых методов), но они часто разрабатываются для каждого языка и не имеют серебряной маркировки.