Я использую базовое автозаполнение в Vim вместе с плагином Autocomplpop , который автоматически показывает доступные завершения, когда я начинаю печатать. Как только я наберу достаточно, чтобы сузить список до слова, которое я хочу, я хотел бы иметь возможность нажать на вкладку, чтобы выбрать это завершение. С помощью приведенного ниже сценария требуется два нажатия вкладок вместо одного, и я не уверен, почему.

" 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 ответ1

-1

Используйте return "\<c-n>" вместо return "\<c-p>" .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .