在 Deoplete 中使用 Ctrl-N 手动完成

Mic*_*vko 5 vim autocomplete neovim

我安装了 deoplete 并且它对我有用,但是默认情况下,只要您键入内容,它就会打开一个弹出窗口。这是不可取的。我希望弹出窗口仅在我点击Ctrl+时显示N。所以我禁用自动完成:

let b:deoplete_disable_auto_complete = 1
Run Code Online (Sandbox Code Playgroud)

但这使得Ctrl+ 的N行为与 deoplete 之前一样,即使用缓冲区中的所有单词作为完成源。

我也尝试从文档中添加代码,但无济于事:

            inoremap <silent><expr> <TAB>
            \ pumvisible() ? "\<C-n>" :
            \ <SID>check_back_space() ? "\<TAB>" :
            \ deoplete#mappings#manual_complete()
            function! s:check_back_space() abort "{{{
            let col = col('.') - 1
            return !col || getline('.')[col - 1]  =~ '\s'
            endfunction"}}}
Run Code Online (Sandbox Code Playgroud)

它重新映射 Tab 键,而不是Ctrl+ N。是否可以通过按Ctrl+来显示 Deoplete 手动完成N

Ric*_*her 2

我承认我对您正在寻找的确切行为有点困惑,但似乎您只需要绑定Ctrl+ N?如果是这样:

let g:deoplete#enable_at_startup = 1
let g:deoplete#disable_auto_complete = 1
inoremap <expr> <C-n>  deoplete#manual_complete()
Run Code Online (Sandbox Code Playgroud)

工作正常。