在 Deoplete 中使用 Ctrl-N 手动补全

Manual completion with Ctrl-N in Deoplete

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

let b:deoplete_disable_auto_complete = 1

但这使得 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"}}}

它重新映射 Tab 键,但不映射 Ctrl+N。是否可以通过按 Ctrl+N?

来显示 Deoplete 手动完成

我承认我对你正在寻找的确切行为有点困惑,但看起来你只需要绑定 Ctrl+N ?如果是:

let g:deoplete#enable_at_startup = 1
let g:deoplete#disable_auto_complete = 1
inoremap <expr> <C-n>  deoplete#manual_complete()

工作正常。