像AutoComplPop一样完成新工作

时间:2015-12-18 17:53:35

标签: vim neocomplete

在AutoComplPop遇到很多崩溃后,我切换到neocomplete。我已经找到了let g:neocomplete#enable_auto_select = 1选项,当你点击返回时,它会选择neocomplete的第一个建议,就像AutoComplPop那样。

但我无法弄清楚如何执行以下操作:

  1. 我想说我想选择第三个建议,所以我<C-n>两次突出显示它。使用AutoComplPop,我现在可以点击返回并选择当前突出显示的建议,并关闭建议窗口,而不插入换行符。使用neocomplete,会插入换行符。我意识到我可以打空间并继续输入,但我希望<CR>行为是否一致,无论我是选择第一个建议还是另一个建议。否则肌肉记忆会导致错误。

  2. 如何从所有缓冲区获取建议,而不仅仅是当前缓冲区?

  3. 我是否可以将neocomplete与智能插件(如vim-ruby)一起使用,以便(例如)String对象的完成仅显示字符串方法?

  4. 我希望每个完成都作为单独的条目添加到撤消历史记录中,以便我u撤消完成。这可能吗?

1 个答案:

答案 0 :(得分:0)

我相信问题#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,我认为行为是一个错误,并且已经修复。