Coc.nvim: Проблема с нажатием табуляции в конце слова

Созданный на 16 мар. 2019  ·  5Комментарии  ·  Источник: neoclide/coc.nvim

Я использую пример 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

Как я могу исправить это, не изменяя нормального поведения, когда список кандидатов на завершение не пуст? Спасибо!

question

Самый полезный комментарий

должен перемещать курсор в следующую позицию табуляции.

Что означает следующая позиция табуляции?

Это означает вставку символа табуляции.

Я использую пример 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, я получаю описанное вами поведение. Он переназначает вкладку обратно на вкладку, когда нет открытого окна завершения.

Все 5 Комментарий

должен перемещать курсор в следующую позицию табуляции.

Что означает следующая позиция табуляции?

Курсор находится в конце слова, это не означает, что запрос на завершение вернет пустые результаты, иногда бывает.

должен перемещать курсор в следующую позицию табуляции.

Что означает следующая позиция табуляции?

Это означает вставку символа табуляции.

Я использую пример 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 !

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

LinArcX picture LinArcX  ·  4Комментарии

iago-lito picture iago-lito  ·  3Комментарии

zhou13 picture zhou13  ·  3Комментарии

svenstaro picture svenstaro  ·  4Комментарии

MaskRay picture MaskRay  ·  3Комментарии