2010-08-26 24 views
25

Nó cũng có thể xảy ra với bạn - đôi khi bạn sao chép văn bản từ một số trang web vào bản nháp email phong phú của bạn trong ứng dụng email trực tuyến yêu thích của bạn, bạn không thích thực tế việc dán mảnh có phông chữ khác/kích thước/trọng lượng .. nó bằng cách nào đó nhớ lại phong cách (thường là hình ảnh, khi được chọn). Làm thế nào là nó hơn nếu bạn dán cùng vào trình soạn thảo văn bản yêu thích của bạn như Vim, không có HTML, chỉ là văn bản thuần túy?X11 clipboard xử lý nhiều định dạng dữ liệu như thế nào?

alt text

Dường như vào clipboard duy trì các dữ liệu được chọn trong các định dạng khác nhau. Làm thế nào có thể truy cập dữ liệu trong bất kỳ một trong những định dạng (lập trình hoặc với một số tiện ích)? Khay nhớ X11 hoạt động như thế nào?

+1

+1 câu hỏi hay. Tôi cũng tò mò về điều này. – alternative

+0

tôi đã có một ý tưởng trong một thời gian, rằng trình duyệt duy trì clipboard riêng của họ là tốt, nhưng nó sẽ có nghĩa là nó sẽ chỉ làm việc bên trong quá trình ứng dụng trình duyệt, mà không phải là trường hợp. – mykhal

Trả lời

21

Ứng dụng bạn sao chép từ các định dạng quảng cáo (chủ yếu được xác định theo loại MIME) mà nó có thể cung cấp. Ứng dụng bạn dán vào phải chọn định dạng ưa thích và yêu cầu định dạng đó từ ứng dụng nguồn.

Lý do bạn có thể không thấy tất cả thông tin kiểu được chuyển là các ứng dụng không hỗ trợ cả định dạng chung bao gồm thông tin kiểu.

Bạn cũng có thể gặp sự cố do ứng dụng có thể cố gắng dán HTML nhưng không thực sự có thể xử lý tất cả HTML. Hoặc ứng dụng có thể bị lỗi hoặc có thể không đồng ý về loại MIME cụ thể thực sự có ý nghĩa gì.

Hầu như tất cả các ứng dụng đều có thể sao chép và dán văn bản thuần túy, tất nhiên, nhưng ngoài ra nó còn chạm và di chuyển. Nếu bạn không hiểu điều gì có vẻ hợp lý, bạn có thể gửi một lỗi so với một trong các ứng dụng.

Bạn có thể nhận thấy rằng nếu bạn thoát ứng dụng bạn đang sao chép, bạn không thể dán nữa. (Trừ khi bạn đang chạy một "trình quản lý clipboard" hoặc một cái gì đó.) Điều này là do không có dữ liệu thực sự rời khỏi ứng dụng nguồn cho đến khi ứng dụng đích yêu cầu định dạng để dán. Có "trình quản lý clipboard" yêu cầu dữ liệu ngay lập tức bất cứ khi nào bạn sao chép và lưu trữ dữ liệu đó, vì vậy bạn có thể dán sau khi thoát ứng dụng nguồn, nhưng chúng có nhược điểm (nếu dữ liệu lớn hoặc được cung cấp ở 10 định dạng, v.v. .)

Mã python sau sẽ hiển thị các định dạng sẵn có cho dữ liệu được sao chép hiện tại, nếu bạn đã cài đặt pygtk. Ứng dụng này hiển thị dữ liệu được sao chép ctrl + c, chứ không phải nút trứng phục sinh giữa nhấp chuột. (Xem http://freedesktop.org/wiki/Specifications/ClipboardsWiki)

#!/usr/bin/python 

import gtk; 
clipboard = gtk.clipboard_get() 
print("Current clipboard offers formats: " + str(clipboard.wait_for_targets())) 
+0

cảm ơn thông tin rất hữu ích (tôi sợ câu trả lời sẽ bao gồm t [eo] ns nếu các dòng mã C ..) bây giờ tôi chỉ tự hỏi tại sao dữ liệu văn bản/html được sao chép từ firefox (trang web utf-8) trong mã hóa utf-16le .. – mykhal

+0

Theo dõi, theo một loại: http://askubuntu.com/questions/427704/how- can-i-edit-the-source-of-html-trong-the-clipboard. Bất kỳ mẹo nào thực sự cố gắng tìm nạp văn bản có định dạng từ khay nhớ tạm? Tôi quá lười biếng để tìm ra cách tạo bộ đệm. –

-1

Hầu hết các hệ thống clipboard đều cho phép lưu trữ nhiều định dạng dữ liệu. Ví dụ: Adobe AIR sẽ đọc từng khay nhớ tạm của hệ điều hành cho văn bản thô, văn bản đa dạng, bitmap và luồng dữ liệu nhị phân tùy ý.

Tối đa mỗi ứng dụng để tự triển khai các ứng dụng này. Tôi chắc chắn X11 sử dụng một phương pháp rất giống với mọi hệ điều hành/Shell khác.

+1

và thực sự LÀM THẾ NÀO, và LÀM THẾ NÀO chúng tôi có thể truy cập các định dạng khác nhau, đây là câu hỏi;) – mykhal

Các vấn đề liên quan