Tại sao Shift + Chèn dán từ CLIPBOARD trong một số ứng dụng và CHÍNH trong các ứng dụng khác?


29

Làm cách nào để dán từ lựa chọn CHÍNH (ví dụ: văn bản được chọn bằng chuột) bằng phím tắt? Shift+Insertdán không nhất quán từ PRIMARY hoặc CLIPBOARD, tùy thuộc vào ứng dụng.

Lý lịch:

Ctrl+Csao chép văn bản đã chọn vào CLIPBOARD trong khi chọn chuột sao chép thành CHÍNH. Dán từ CLIPBOARD với Ctrl+Vvà dán từ PRIMARY với mouse-middle-click.

Trong trình giả lập thiết bị đầu cuối (gnome-terminal), dán từ CLIPBOARD với Ctrl+Shift+V. (Dán từ PRIMary với ảnh mouse-middle-clicktĩnh.)

Tôi muốn dán từ PRIMARY bằng một phím tắt. Trong gnome-terminal, đây là Shift+Insert, nhưng trong gedit và Firefox, Shift+Insertdán từ CLIPBOARD. Tôi muốn một lối tắt liên tục dán từ CLIPBOARD và một lối tắt ngắn khác nhau liên tục dán từ CHÍNH.

Tôi đang chạy Ubuntu 14.04 với xmonad và Firefox 34.0

Câu trả lời:


30

Tất cả các ứng dụng bạn đã đề cập đều là gtk+ứng dụng nên khá dễ trả lời Tại sao ... Bởi vì trong tất cả các gtk+ ứng dụng ( ngoại trừ một ứng dụng ), Shift+ Insertdán từ CLIPBOARD - tức là tương đương với Ctrl+ V. Phím tắt được mã hóa cứng trong gtkentry.c(dòng 2022) và gtktextview.c(dòng 1506):

gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK,
                "paste-clipboard", 0);

Nó cũng được ghi lại trong Hướng dẫn tham khảo GTK + 3 dưới GtkEntryđây:

The “paste-clipboard” signal
void
user_function (GtkEntry *entry,
               gpointer  user_data)
The ::paste-clipboard signal is a keybinding signal which gets emitted
to paste the contents of the clipboard into the text view.
The default bindings for this signal are Ctrl-v and Shift-Insert.

Theo như tôi biết điều này đã được thực hiện cho phù hợp với khác DE (xem KDE's Qttổ hợp phím trong QTextEdit Class) và Windows OS 1 .
Các Ngoại lệ duy nhấtgnome-terminal. Sau các cuộc tranh luận dài, các nhà phát triển đã quyết định (để thống nhất với các thiết bị đầu cuối khác) rằng, trong gnome-terminal, Shift+ Insertnên dán từ PRIMARY và Ctrl+ Shift+ Vnên dán từ CLIPBOARD (mặc dù bạn có các tùy chọn để tùy chỉnh một số phím tắt).


Đối với Làm thế nào bạn có dán lựa chọn với một phím tắt ... không có cách nào đơn giản.

Cách dễ nhất là gán phím tắt cho tập lệnh chạy xdotool click 2(mô phỏng nhấp vào nút chuột giữa). Mặc dù điều này hoạt động (và nó sẽ hoạt động với tất cả hoặc hầu hết các DE và bộ công cụ), nhưng nó chỉ hoạt động nếu con trỏ chuột thực sự nằm trên hộp nhập văn bản, nếu không thì không thành công.

Một cách tương đối dễ dàng khác là thông qua Gnome Access, nếu nó có sẵn trên hệ thống của bạn. Nó cũng đòi hỏi sự hiện diện của một numpad. Truy cập Universal Access>> Pointing & Clickingvà bật Mouse Keys. Hãy chắc chắn NumLocklà tắt. Sau đó, bạn có thể sử dụng các phím numpad để di chuyển con trỏ và nhấp. Để mô phỏng một nút chuột giữa, nhấp (và nhả) *(dấu hoa thị) sau đó nhấn 5(đây là hướng dẫn ngắn ). Giải pháp này dường như luôn luôn làm việc trong một gtk+môi trường. Nhược điểm là nó đòi hỏi Gnome Accessibilityvà một numpad. Ngoài ra, bạn không thể tùy chỉnh các phím tắt.

Một giải pháp thú vị đã được đề xuất trên gnome-bugzilla (bug 643391) . (Cập nhật 2018: sự cố hiện đã được chuyển đến đây .) Nó yêu cầu vá một số tệp nguồn và cài đặt tùy chọn cấu hình trong ~/.config/gtk-3.0/gtk.css(hoặc ~/.gtkrc-2.0cho gtk+2 ứng dụng). Tôi đã không thử cá nhân nhưng phản hồi là tích cực.

Lý tưởng nhất là bạn sẽ vá các tệp nguồn và xác định "paste-selection"tín hiệu sau đó liên kết Shift+ Insertvới "paste-selection"thay vì "paste-clipboard". Mã của Andy (được đính kèm trong báo cáo lỗi được liên kết ở trên) có thể đóng vai trò là một hướng dẫn về cách thực hiện điều đó. Thậm chí sau đó, nó sẽ chỉ ảnh hưởng đến gtk+các ứng dụng (Tôi không phải là một KDE/Qtchàng trai nên tôi không biết làm thế nào để thay đổi Qthành vi của ứng dụng).


1: (không đề cập đến CUA của IBM)


2
Cảm ơn lời giải thích đó. Thật đáng tiếc vì không có giải pháp nào tốt hơn, tôi bỏ lỡ một phím tắt phù hợp cho CHÍNH HÃNG rất nhiều. Cách giải quyết mô phỏng chuột không giúp ích nhiều vì mục đích của phím tắt là tránh phải đối phó với chuột.
didi_X8

1

Tôi xin lỗi: Tôi không thể viết bình luận vì danh tiếng, vì vậy tôi viết như một câu trả lời. Nó không phải là giải pháp trực tiếp, nhưng nó giúp tôi ...

Bạn có thể sử dụng kết hợp thông tin:

  1. Chỉnh sửa chủ đề gtk và cho phép ràng buộc khóa theo ý muốn .

  2. Ví dụ về việc tạo liên kết phím gtk 3.0 trong css của chủ đề .

  3. Ví dụ về ghi đè keybindings và unbind .

  4. Ví dụ về sửa đổi keybinding cho gnome-terminal

  5. Tự động khởi động autocutsel với các tùy chọn mặc định để đồng bộ CLIPBOARD với CUTBUFFER (đây là tùy chọn). Liên kết này chỉ dành cho thông tin về vấn đề.

  6. Sử dụng clipman để gui truy cập nhiều bộ đệm (PRIMARY và CLIPBOARD), mà không có lựa chọn đồng bộ hóa tự động (đồng bộ hóa tự động hai chiều làm sai).

Vì vậy, tôi chỉ chọn chủ đề gtk và sửa đổi CSS chủ đề thành các phím bấm cần thiết cho các bản sao bảng tạm (Ctrl + Chèn) và dán bảng tạm (Shift + Chèn).


1
Đây có thể là khởi đầu của một câu trả lời hay, nếu bạn lấy nội dung của các liên kết đó và kết hợp thông tin. Như hiện tại, nó chỉ là một tập hợp các liên kết và điều đó có nguy cơ bị xóa. Vui lòng điền thông tin để câu trả lời trực tiếp và tôi chắc chắn bạn sẽ nhận được thông tin (từ đó cung cấp cho bạn đủ danh tiếng để nhận xét). Cảm ơn!
Toby Speight
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.