OS X 复制粘贴到终端将 fdbf bfb9 b083 添加到选择的开始和结束

OS X 复制粘贴到终端将 fdbf bfb9 b083 添加到选择的开始和结束

我无论如何都无法弄清楚这一点。

当使用浏览器时(无论哪个),如果我选择文本,然后粘贴到 Vim 或 Neovim 或 Nano,我会看到字符添加到我的选择的开头和结尾。

例如,我从此页面选择“答案”,然后将其粘贴到终端中,我得到:

??????answer??????

将粘贴的数据保存到扩展名为 .bin 的文件中,然后使用此自动命令助手在 Vim 中打开:

augroup Binary
   au!
   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

我得到这个输出:

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

所以你可以看到我得到了

fdbf bfb9 b083

添加到开头,我得到

fdbf bfb9 b083

添加到最后。

对于此事您有什么想法吗?

我记得的最近唯一的重大变化是将 OS X 升级到 Yosemite,因此这肯定可能是一次重大更新。

编辑:我怀疑终端是问题的根源。我能够使用 iTerm2,没有这个问题。

答案1

此错误与括号粘贴模式[1]的功能有关。Neovim 尚不支持该模式[2]。如果应用程序表现得像可以支持该模式但实际上不支持,则会出现上述错误。

打开neovim一个终端窗口。将“always”放在剪贴板中,运行以下命令:

pbpaste | xxd

应该没有错误。现在运行以下命令:

cat | xxd

输入 ,⌘-v然后按Ctrl-D

您应该会看到错误。在第二种情况下,应用程序正在处理输入,该应用程序使用特殊字节包装输入。填充的字节作为 stdin 发送。

[1] https://cirw.in/blog/bracketed-paste

[2] https://github.com/neovim/neovim/issues/3476

相关内容