slimux icon indicating copy to clipboard operation
slimux copied to clipboard

Slimux broken in IPython 5

Open ghost opened this issue 7 years ago • 8 comments

When the user sends a visual selection to a pane with IPython 5, slimux only sends the first line. Here is a screenshot the show the result after visual selection (selecting both lines) and <C-c><C-c>:

screenshot from 2016-07-12 22-40-24

By the way, excellent plugin.

ghost avatar Jul 13 '16 03:07 ghost

I've got the same issue!

apirogov avatar Jul 20 '16 19:07 apirogov

same here ... bpython works tho

bechampion avatar Sep 07 '16 15:09 bechampion

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.

theparadoxofparadox avatar Sep 29 '16 12:09 theparadoxofparadox

Same issue. Anyone find a workaround?

shawnwanderson avatar Oct 16 '16 07:10 shawnwanderson

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:

  1. Delete the '<,'> that vim automatically adds to command lines in visual selection mode
  2. Send over %cpaste
  3. Send over the selection, which needs to be preceeded by '<,'>
  4. Send over -- to end the %cpaste magic

cgoldammer avatar Nov 17 '16 15:11 cgoldammer

I just created a PR for adding an option to use %cpaste

karadaharu avatar Nov 17 '16 16:11 karadaharu

One concern about %cpaste is it will not be saved in ipython's history. Checkout https://github.com/ipython/ipython/issues/1384

After some investigation, I found that

  1. 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).
  2. The pasted content is recognized utilizing a technique called bracketed paste mode
  3. tmux's paste-buffer support bracketed paste mode via -p option.

I've created a PR accordingly: https://github.com/epeli/slimux/pull/75. The main advantage of the paste way is that the pasted content will be stored in ipython's history.

lotabout avatar May 29 '17 07:05 lotabout

I have this on my work station but on my laptop it works just fine!

elmerehbi avatar Jun 07 '18 14:06 elmerehbi