Vim:使用 Tab 键和 Autocomplpop 插件进行自动完成

Vim:使用 Tab 键和 Autocomplpop 插件进行自动完成

我使用 Vim 的基本自动完成功能以及自动弹出插件,当我开始输入时,它会自动显示可用的补全。一旦我输入了足够的内容,将列表缩小到我想要的单词,我希望能够按 Tab 键来选择该补全。使用下面的脚本,需要按两次 Tab 键,而不是一次,我不知道为什么。

" Tab completion
" will insert tab at beginning of line,
" will use completion if not at beginning
set wildmode=list:longest,list:full
function! InsertTabWrapper()
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k'
        return "\<tab>"
    else
        return "\<c-p>"
    endif
endfunction
inoremap <Tab> <c-r>=InsertTabWrapper()<cr>
inoremap <S-Tab> <c-n>

答案1

使用return "\<c-y>"而不是return "\<c-p>"

答案2

下面的功能完成了工作

set wildmode=list:longest,list:full

function! InsertTabWrapper()
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k'
        return "\<tab>"
    else
        return "\<c-p>"
    endif
endfunction
inoremap <expr> <tab> InsertTabWrapper()
inoremap <s-tab> <c-n>

答案3

使用return "\<c-n>"而不是return "\<c-p>"

相关内容