서문처럼 저는 프로그래머는 아니지만 일을 자동화하기 위해 약간의 쉘을 작성했습니다.
이는 MacOS Mojave에 있지만 neovim의 구성이 그대로 유지되므로 큰 차이는 없습니다.
coc의 자동 완성 기능을 사용하려고 할 때 Enter 키를 누르면 자동 완성을 선택하는 대신 다음 줄로 돌아가는 것을 발견했습니다. 나는 그것이 vimwiki 또는 markdown과 관련이 있다고 의심했습니다. 나는 보았다이 스레드충돌하는 키 바인딩을 찾으려고 시도했는데 :verbose imap <cr>
자동 완성을 시도한 후의 출력에서 다음을 얻었습니다.
i <CR> &@<C-]><Esc>:VimwikiReturn 1 5<CR><SNR>38_AutoPairsReturn
Last set from ~/.config/nvim/plugged/auto-pairs/plugin/auto-pairs.vim line 662
i <CR> * pumvisible() ? "\<C-Y>" : "\<CR>"
Last set from ~/.config/nvim/init.vim line 225
Press ENTER or type command to continue
그래서 살펴보니 auto-pairs.vim
다음과 같은 것을 발견했습니다.
execute 'inoremap <script> <buffer> <silent> <CR> .old_cr.'<SID>AutoPairsReturn'
다음에서 다시 매핑하는 것보다 우선시되는 것 같습니다 init.vim
.
inoremap <expr><cr> pumvisible() ? "\<C-y>" : "\<CR>"
이 함수가 어디에 있는지 찾아보았 pumvisible()
으나 정의를 찾을 수 없었습니다. 나는 그걸로 뭔가를 함으로써 자동 쌍 내의 바인딩을 멈출 수 있다고 생각했습니다. 그런 다음 init.vim
. 그것은 실제로 아무것도 하지 않았고, 나는 and <cr>
로 변경했지만 그것은 모든 상황에서 화살표 키가 Enter처럼 작동하도록 만드는 도미노 효과를 가졌습니다.<Space>
<Right>
이 충돌을 어떻게 해결할 수 있습니까? 플러그인 파일을 편집해야 한다면(vim-plug를 사용하고 있습니다) 어떻게 깔끔하게 편집할 수 있습니까(업데이트 시 중단되지 않도록)?
감사합니다. 필요한 경우 github에 전체 init.vim
또는 전체 neovim 구성을 제공할 수 있습니다.
답변1
vimwiki의 탭 키 매핑이 내 coc.nvim 자동 완성과도 충돌했습니다. 이를 init.vim에 추가하세요.
au filetype vimwiki silent! iunmap <buffer> <Tab>
답변2
i COC 설정에 대한 매핑을 변경했습니다.
inoremap <silent> <expr> <C-End> pumvisible() ? coc#_select_confirm(): "<Cg>u<CR><cr>=coc#on_enter()<CR>"
이제 ctrl + end를 눌러 선택합니다.