Заставьте неоконченную работу, как AutoComplPop

После многих сбоев с AutoComplPop я переключился на neocomplete. Я уже нашел let g:neocomplete#enable_auto_select = 1 опция, которая выбирает первое предложение neocomplete, когда вы нажимаете return, как AutoComplPop.

Но я не могу понять, как сделать следующее:

  1. Допустим, я хочу выбрать 3-е предложение, поэтому я <C-n> дважды, чтобы выделить его. С AutoComplPop я теперь мог нажать клавишу возврата, и текущее выделенное предложение будет выделено, и окно предложения будет закрыто, без вставки новой строки. С neocomplete вставляется символ новой строки. Я понимаю, что могу просто нажать пробел и продолжать печатать, но я хочу <CR> поведение, чтобы быть последовательным, выбираю ли я первое предложение или другое. В противном случае мышечная память приводит к ошибкам.

  2. Как получить предложения из всех буферов, а не только из текущего?

  3. Могу ли я использовать neocomplete с плагинами intelli-sense, такими как vim-ruby, чтобы дополнения, скажем, String объект показывает только строковые методы?

  4. Я хотел бы, чтобы каждое завершение было добавлено как отдельная запись в историю отмен, чтобы я мог u отменить завершение. Это возможно?

1 ответ

Я полагаю, что вы хотите получить ответ на вопрос №1:

function! s:close_popup_and_complete()
  return pumvisible() ? neocomplete#close_popup() : "\<CR>"
endfunction

" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>close_popup_and_complete()<CR>

На вопрос № 2 я считаю, что поведение было ошибкой и с тех пор было исправлено.

Другие вопросы по тегам