Slimux broken in IPython 5
r-31415 opened this issue · 8 comments
I've got the same issue!
same here ... bpython works tho
I have this problem too! My only fault for an AWESOME plugin.
I did find though that exiting out of IPython to just a normal bash prompt, SlimuxREPLSendSelection DOES indeed send the selection only, however, after left clicking in the bash prompt pane (and hearing n -1 terminal beeps when copying over n lines). Just interesting...it DOES work, just not in the new IPython.
Same issue. Anyone find a workaround?
I found a workaround, but note that I haven't yet checked all corner cases. Here's a line that makes the visual selection mode work with Slimux in Ipython 5 for me, binding the command to <C-c><C-c>
(of course, you can bind it to any other shortcut):
vnoremap <C-c><C-c> :<C-w>SlimuxShellRun %cpaste<CR>:'<,'>SlimuxREPLSendSelection<CR>:SlimuxShellRun --<CR>
In short, the idea is to use the %cpaste magic to enter text. This has the added advantage that it probably works better with heavily indented code, although I haven't fully checked.
Here's what it does:
- Delete the
'<,'>
that vim automatically adds to command lines in visual selection mode - Send over
%cpaste
- Send over the selection, which needs to be preceeded by
'<,'>
- Send over
--
to end the%cpaste
magic
I just created a PR for adding an option to use %cpaste
One concern about %cpaste is it will not be saved in ipython's history. Checkout ipython/ipython#1384
After some investigation, I found that
- Ipython >= 5 will support multiple paste (via Ctrl-V or Command-V). That means it will recognize the pasted content and handle the indentation well(basically keep the indentation).
- The pasted content is recognized utilizing a technique called bracketed paste mode
- tmux's
paste-buffer
supportbracketed paste mode
via-p
option.
I've created a PR accordingly: #75.
The main advantage of the paste
way is that the pasted content will be stored in ipython's history.
I have this on my work station but on my laptop it works just fine!