Я использую пример vimrc, приведенный в README.md.
Вопрос в том, что когда кандидата на завершение нет, а курсор находится в конце слова, нажатие табуляции ничего не дает.
На мой взгляд, идеальным поведением для этого случая должно быть перемещение курсора на следующую позицию табуляции, кроме поиска кандидатов на завершение в пустом списке.
Я считаю, что это вызвано
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
в данной конфигурации vimrc
Как я могу исправить это, не изменяя нормального поведения, когда список кандидатов на завершение не пуст? Спасибо!
должен перемещать курсор в следующую позицию табуляции.
Что означает следующая позиция табуляции?
Курсор находится в конце слова, это не означает, что запрос на завершение вернет пустые результаты, иногда бывает.
должен перемещать курсор в следующую позицию табуляции.
Что означает следующая позиция табуляции?
Это означает вставку символа табуляции.
Я использую пример vimrc, приведенный в README.md.
Я считаю, что это вызвано
...
Действительно. Проверьте эту страницу вики: https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources#improve -completion-experience
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
Приведенный выше код должен заставить его работать так, как вы хотите.
Когда я комментирую эту строку из vimrc, я получаю описанное вами поведение. Он переназначает вкладку обратно на вкладку, когда нет открытого окна завершения.
Пример в Readme предназначен для завершения триггера, когда перед ним стоит символ слова, но вам не нужно запускать завершение, поэтому вам нужно создать свою собственную раскладку для <Tab>
.
inoremap <silent><expr> <TAB> \ pumvisible() ? "\<C-n>" : \ <SID>check_back_space() ? "\<TAB>" : \ coc#refresh() inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
Приведенный выше код должен заставить его работать так, как вы хотите.
Когда я комментирую эту строку из vimrc, я получаю описанное вами поведение. Он переназначает вкладку обратно на вкладку, когда нет открытого окна завершения.
Это работает. Спасибо @DzKaki !
Самый полезный комментарий
Это означает вставку символа табуляции.
Действительно. Проверьте эту страницу вики: https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources#improve -completion-experience
Приведенный выше код должен заставить его работать так, как вы хотите.
Когда я комментирую эту строку из vimrc, я получаю описанное вами поведение. Он переназначает вкладку обратно на вкладку, когда нет открытого окна завершения.