我无论如何都无法弄清楚这一点。
当使用浏览器时(无论哪个),如果我选择文本,然后粘贴到 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 发送。