Macos – OS X copy paste into Terminal adds fdbf bfb9 b083 to beginning and end of selection


For the life of me, I can't figure this out.

When using a browser (doesnt matter which), if I select text, then paste in Vim or Neovim or Nano, I see characters added to the beginning and end of my selection.

For example, I select "answer" from this page, then paste it over in Terminal I get:


Saving this pasted data to file with .bin extension and then opening in Vim with this auto command helper:

augroup Binary
   au BufReadPre  *.bin let &bin=1
   au BufReadPost *.bin if &bin | %!xxd
   au BufReadPost *.bin set ft=xxd | endif
   au BufWritePre *.bin if &bin | %!xxd -r
   au BufWritePre *.bin endif
   au BufWritePost *.bin if &bin | %!xxd
   au BufWritePost *.bin set nomod | endif
augroup END

I get this output:

0000000: fdbf bfb9 b083 616e 7377 6572 fdbf bfb9  ......answer....
0000010: b083 0a                                  ...

So, you can see that I get

fdbf bfb9 b083

added to the beginning, and I get

fdbf bfb9 b083

added to the end.

Any ideas on what this is about?

The only recent major change I can remember is upgrading OS X to Yosemite, so sure that's potentially a large update.

I suspect Terminal is the source of the issue. I've been able to use iTerm2 without this problem.

Best Answer

  • This error has to do with a feature known as bracketed pasted mode[1]. Neovim does not support it yet[2]. You get the error above if an application acts like it can support that mode, but fails to support it.

    In neovim open a terminal window. With 'always' in the clipboard, run the following:

    pbpaste | xxd

    There should be no errors. Now run the following:

    cat | xxd

    Enter ⌘-v followed by Ctrl-D.

    You should expect to see the errors. In the second case, input is being handled by the application, which wraps the input with special bytes. The padded bytes are sent as stdin.



  • Related Question