Как установить местоположение всплывающего меню автозаполнения vim?

В vim при использовании плагина автозаполнения (или просто встроенного в vim omnifunc) рядом с курсором появится окно с предложениями по завершению:

пример автодополнения

Vim пытается разумно разместить это меню, размещая его под курсором большую часть времени, но над курсором, если вы находитесь в нижней части окна и у вас нет места для просмотра окна.

Недавно я обновился до новой версии vim (и YouCompleteMe, подключаемого модуля автозаполнения, который я использую), и кажется, что vim (или YCM, не уверен, что за это отвечает) теперь слишком агрессивно размещает элементы над курсором, а не под ним, где в основном, если вы находитесь в верхней половине окна, всплывающее меню находится под курсором, а если вы находитесь в нижней половине, всплывающее меню всегда находится над курсором.

Мой вопрос в том, как я могу контролировать это поведение? Похоже, это, вероятно, настройка vim, но во всех моих поисках я не смог найти ничего, что намекало бы на то, как vim решает, размещать ли всплывающее меню над или под курсором.


person mattg    schedule 07.11.2016    source источник
comment
Положение всплывающего окна нельзя изменить напрямую. Только его содержимое (:help complete() и :help complete_add) и его максимальная высота (:help pumheight) могут.   -  person romainl    schedule 08.11.2016


Ответы (1)


Единственными параметрами, связанными с завершением, являются 'complete' и 'completeopt'. Размещение полного всплывающего меню жестко запрограммировано в исходном коде Vim.

Если вы считаете, что это изменилось в худшую сторону в последней версии Vim, откройте проблему в системе отслеживания ошибок или напрямую обсудить это в списке рассылки vim_dev.

person Ingo Karkat    schedule 08.11.2016