web-dev-qa-db-ja.com

OS Xのコピーしてターミナルに貼り付けると、選択の最初と最後にfdbf bfb9b083が追加されます

私の一生の間、私はこれを理解することができません。

ブラウザを使用している場合(どちらでも構いません)、テキストを選択してから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を使用できました。

5
mrk

このエラーは、ブラケット貼り付けモードと呼ばれる機能に関係しています。[1]。 Neovimはまだサポートしていません[2]。アプリケーションがそのモードをサポートできるように動作するが、サポートできない場合は、上記のエラーが発生します。

neovimでターミナルウィンドウを開きます。クリップボードに「always」を入力して、次のコマンドを実行します。

pbpaste | xxd

エラーはないはずです。次に、以下を実行します。

cat | xxd

入る ⌘-v に続く Ctrl-D

エラーが表示されることを期待する必要があります。 2番目のケースでは、入力はアプリケーションによって処理され、アプリケーションは入力を特別なバイトでラップします。埋め込まれたバイトはstdinとして送信されます。

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

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

3
cdosborn