Sao chép OS X dán vào Terminal thêm fdbf bfb9 b083 vào đầu và cuối lựa chọn


5

Đối với cuộc sống của tôi, tôi không thể tìm ra điều này.

Khi sử dụng trình duyệt (không quan trọng), nếu tôi chọn văn bản, sau đó dán vào Vim hoặc Neovim hoặc Nano, tôi thấy các ký tự được thêm vào đầu và cuối lựa chọn của mình.

Ví dụ: tôi chọn "câu trả lời" từ trang này, sau đó dán nó vào Terminal tôi nhận được:

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

Lưu dữ liệu đã dán này vào tệp có phần mở rộng .bin và sau đó mở trong Vim với trình trợ giúp lệnh tự động này:

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

Tôi nhận được kết quả này:

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

Vì vậy, bạn có thể thấy rằng tôi nhận được

fdbf bfb9 b083

thêm vào đầu, và tôi nhận được

fdbf bfb9 b083

thêm vào cuối

Bất kỳ ý tưởng về những gì này là về?

Thay đổi lớn gần đây duy nhất tôi có thể nhớ là nâng cấp OS X lên Yosemite, vì vậy chắc chắn đó có khả năng là một bản cập nhật lớn.

EDIT: Tôi nghi ngờ Terminal là nguồn gốc của vấn đề. Tôi đã có thể sử dụng iTerm2 mà không gặp vấn đề này.


Không chắc chắn chính xác những gì bạn đang sao chép, nhưng chúng có thể là dấu ngoặc kép Unicode?
baum

@baum, tôi đã đề cập rõ ràng một ví dụ về những gì tôi đang sao chép "Ví dụ: tôi chọn 'câu trả lời' từ trang này, sau đó dán nó vào Terminal tôi nhận được" ...
mrk

hai câu hỏi - bạn nhận được gì khi dán vào TextEdit và bạn đang sử dụng cài đặt Terminal nào (thực tế: cài đặt "hồ sơ" trong tùy chọn của Terminal.app)
Florenz Kley

@FlorenzKley không chắc chắn TextEdit là một tùy chọn khả thi ở đây, nó buộc tôi phải lưu trong RTF hoặc ODT hoặc các định dạng khác có thêm tất cả các loại c ** p vào tệp :) Nhưng dù sao thì nó cũng mở tệp bằng vim hoặc hex biên tập viên, tôi không nhận được những thứ fdbf trong đó. Tôi đã thu hẹp vấn đề với Terminal.
mrk

@FlorenzKley mà không bán phá giá toàn bộ các ưu đãi Terminal của tôi, một số cài đặt đáng chú ý là (bị ảnh hưởng bởi tôi aka Các Defaults) ... terminfo = xterm-256color, text-encoding = Unicode (UTF-8)
Mrk

Câu trả lời:


3

Lỗi này xảy ra với một tính năng được gọi là chế độ dán được đặt dấu ngoặc [1] . Neovim chưa hỗ trợ nó [2] . Bạn gặp lỗi ở trên nếu một ứng dụng hoạt động như nó có thể hỗ trợ chế độ đó, nhưng không hỗ trợ nó.

Trong neovimmột cửa sổ đầu cuối mở. Với 'always' trong bảng tạm, hãy chạy như sau:

pbpaste | xxd

Không nên có lỗi. Bây giờ chạy như sau:

cat | xxd

Nhập ⌘-vtheo sau Ctrl-D.

Bạn sẽ thấy các lỗi. Trong trường hợp thứ hai, đầu vào đang được ứng dụng xử lý, nó bao bọc đầu vào bằng các byte đặc biệt. Các byte đệm được gửi dưới dạng stdin.

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

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


1
ôi! Và xung quanh rất lâu. Học một cái gì đó mới mỗi ngày :-)
Florenz Kley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.