Coc.nvim: Masalah saat menekan tab di akhir kata

Dibuat pada 16 Mar 2019  ·  5Komentar  ·  Sumber: neoclide/coc.nvim

Saya menggunakan contoh vimrc yang diberikan di README.md.

Pertanyaannya adalah, ketika tidak ada kandidat untuk penyelesaian dan kursor berada di akhir kata, mengetuk tab tidak menghasilkan apa-apa.

Menurut pendapat saya, perilaku ideal untuk kasus ini adalah memindahkan kursor ke posisi tab berikutnya, selain mencari kandidat penyelesaian dalam daftar kosong.

Saya percaya ini disebabkan oleh

inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"

dalam konfigurasi vimrc yang diberikan

Bagaimana saya bisa memperbaikinya tanpa mengubah perilaku normal ketika daftar kandidat penyelesaian tidak kosong? Terima kasih!

question

Komentar yang paling membantu

harus memindahkan kursor ke posisi tab berikutnya.

Apa yang dimaksud dengan posisi tab berikutnya?

Ini berarti memasukkan karakter tab.

Saya menggunakan contoh vimrc yang diberikan di README.md.
Saya percaya ini disebabkan oleh
...

Memang. Periksa halaman wiki ini: 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>"

Kode di atas harus membuatnya bekerja seperti yang Anda inginkan.
Ketika saya mengomentari baris itu dari vimrc, saya mendapatkan perilaku yang Anda gambarkan. Ini memetakan kembali tab kembali ke tab ketika tidak ada jendela penyelesaian yang terbuka.

Semua 5 komentar

harus memindahkan kursor ke posisi tab berikutnya.

Apa yang dimaksud dengan posisi tab berikutnya?

Kursor berada di akhir kata tidak berarti permintaan penyelesaian akan mengembalikan hasil kosong, terkadang.

harus memindahkan kursor ke posisi tab berikutnya.

Apa yang dimaksud dengan posisi tab berikutnya?

Ini berarti memasukkan karakter tab.

Saya menggunakan contoh vimrc yang diberikan di README.md.
Saya percaya ini disebabkan oleh
...

Memang. Periksa halaman wiki ini: 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>"

Kode di atas harus membuatnya bekerja seperti yang Anda inginkan.
Ketika saya mengomentari baris itu dari vimrc, saya mendapatkan perilaku yang Anda gambarkan. Ini memetakan kembali tab kembali ke tab ketika tidak ada jendela penyelesaian yang terbuka.

Contoh di Readme adalah untuk penyelesaian pemicu ketika ada karakter kata sebelumnya, tetapi yang Anda butuhkan bukanlah pemicu penyelesaiannya, jadi Anda harus membuat peta kunci Anda sendiri untuk <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>"

Kode di atas harus membuatnya bekerja seperti yang Anda inginkan.
Ketika saya mengomentari baris itu dari vimrc, saya mendapatkan perilaku yang Anda gambarkan. Ini memetakan kembali tab kembali ke tab ketika tidak ada jendela penyelesaian yang terbuka.

Ini bekerja. Terima kasih @DzKaki !

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

andys8 picture andys8  ·  3Komentar

rkulla picture rkulla  ·  3Komentar

zhou13 picture zhou13  ·  3Komentar

lanox picture lanox  ·  3Komentar

iago-lito picture iago-lito  ·  3Komentar