Deoplete.nvim: Neovim blocks when using deoplete + multiple-cursors + UltiSnips

Created on 21 Apr 2016  路  7Comments  路  Source: Shougo/deoplete.nvim

Problems summary

Neovim is blocking when using multiple-cursors + deoplete + UltiSnips after using multiple-cursors to rename something.

Environment Information

  • OS: Linux 4.5.0-1-ARCH x86_64 GNU/Linux(ArchLinux)
  • Neovim version: v0.1.3-384-g47d44e0

    Provide a minimal init.vim with less than 50 lines (Required!)

let g:mapleader = " "

" Plugins {{{
call plug#begin()
" deoplete {{{
let g:deoplete#enable_at_startup=1
Plug 'Shougo/deoplete.nvim'
" }}}
" UltiSnips {{{
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<tab>"
let g:UltiSnipsJumpBackwardTrigger="<S-tab>"
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
" }}}
" multiple-cursors {{{
let g:multi_cursor_next_key='<tab>'
let g:multi_cursor_prev_key='<C-a>'
let g:multi_cursor_skip_key='<C-d>'
let g:multi_cursor_quit_key='<Esc>'
let g:multi_cursor_start_key='<leader><TAB>'
Plug 'terryma/vim-multiple-cursors'
" }}}
call plug#end()
" }}}

The reproduce ways from neovim starting (Required!)

  1. Use multiple-cursors to rename something
  2. Start moving fast

    Screen shot (if possible)

bug

Upload the log file

The log file have 31M(220k lines) with this :

...
2016-04-21 00:20:30,431 [DEBUG @ msgpack_stream.py:send:32] 12994 - sent [0, 29898, 'vim_set_var', ('deoplete#_context', {})]
2016-04-21 00:20:30,431 [DEBUG @ base.py:send:113] 12994 - Sending 'b'\x94\x00\xcdt\xca\xabvim_set_var\x92\xb1deoplete#_context\x80''
2016-04-21 00:20:30,431 [DEBUG @ session.py:_yielding_request:149] 12994 - yielding from greenlet <greenlet.greenlet object at 0x7f42d4efecc0> to wait for response
2016-04-21 00:20:30,431 [DEBUG @ msgpack_stream.py:_on_data:53] 12994 - waiting for message...
2016-04-21 00:20:30,431 [DEBUG @ msgpack_stream.py:_on_data:55] 12994 - received message: [1, 29897, None, {}]
2016-04-21 00:20:30,431 [DEBUG @ async_session.py:_on_response:95] 12994 - received response: None, {}
2016-04-21 00:20:30,431 [DEBUG @ session.py:response_cb:145] 12994 - response is available for greenlet <greenlet.greenlet object at 0x7f42d47d40e0>, switching back
2016-04-21 00:20:30,432 [DEBUG @ session.py:handler:200] 12994 - greenlet <greenlet.greenlet object at 0x7f42d47d40e0> finished executing
2016-04-21 00:20:30,432 [DEBUG @ session.py:handler:205] 12994 - greenlet <greenlet.greenlet object at 0x7f42d47d40e0> is now dying...
2016-04-21 00:20:30,432 [DEBUG @ msgpack_stream.py:_on_data:53] 12994 - waiting for message...
2016-04-21 00:20:30,432 [DEBUG @ msgpack_stream.py:_on_data:58] 12994 - unpacker needs more data...
2016-04-21 00:20:30,432 [DEBUG @ msgpack_stream.py:_on_data:53] 12994 - waiting for message...
2016-04-21 00:20:30,432 [DEBUG @ msgpack_stream.py:_on_data:55] 12994 - received message: [1, 29898, None, {}]
2016-04-21 00:20:30,432 [DEBUG @ async_session.py:_on_response:95] 12994 - received response: None, {}
2016-04-21 00:20:30,432 [DEBUG @ session.py:response_cb:145] 12994 - response is available for greenlet <greenlet.greenlet object at 0x7f42d4efecc0>, switching back
2016-04-21 00:20:30,432 [DEBUG @ session.py:handler:200] 12994 - greenlet <greenlet.greenlet object at 0x7f42d4efecc0> finished executing
2016-04-21 00:20:30,432 [DEBUG @ session.py:handler:205] 12994 - greenlet <greenlet.greenlet object at 0x7f42d4efecc0> is now dying...
2016-04-21 00:20:30,432 [DEBUG @ msgpack_stream.py:_on_data:53] 12994 - waiting for message...
2016-04-21 00:20:30,432 [DEBUG @ msgpack_stream.py:_on_data:58] 12994 - unpacker needs more data...
2016-04-21 00:25:04,186 [DEBUG @ base.py:_on_error:166] 12994 - EOF
2016-04-21 00:25:04,186 [DEBUG @ base.py:stop:149] 12994 - Stopped event loop
2016-04-21 00:25:04,187 [DEBUG @ base.py:run:140] 12994 - Exited event loop

Most helpful comment

Put this in init.vim:

function Multiple_cursors_before()
  let g:deoplete#disable_auto_complete = 1
endfunction
function Multiple_cursors_after()
  let g:deoplete#disable_auto_complete = 0
endfunction

All 7 comments

Put this in init.vim:

function Multiple_cursors_before()
  let g:deoplete#disable_auto_complete = 1
endfunction
function Multiple_cursors_after()
  let g:deoplete#disable_auto_complete = 0
endfunction

It worked, thanks !

I have added the FAQ.

nice

The solution suggested here is not working for me.

Please read the documentation.

       function g:Multiple_cursors_before()
         call deoplete#custom#buffer_option('auto_complete', v:false)
       endfunction
       function g:Multiple_cursors_after()
         call deoplete#custom#buffer_option('auto_complete', v:true)
       endfunction

g:deoplete#disable_auto_complete is old variable.
So it does not work.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

iscekic picture iscekic  路  6Comments

marcus picture marcus  路  6Comments

monicao picture monicao  路  3Comments

ChristianChiarulli picture ChristianChiarulli  路  5Comments

callmekohei picture callmekohei  路  5Comments