Kích hoạt Ctrl + C để sao chép và Ctrl + Shift + C cho phép xen kẽ


8

Tôi muốn bật Ctrl+ Ccho bản sao và Ctrl+ Shift+ Ccho SIGINT / ngắt trong xterm.

Tôi đã tìm thấy sau đây .

XTerm*VT100.Translations: #override \
      Shift Ctrl<Key>V: insert-selection(CLIPBOARD) \n\ 
      Shift Ctrl<Key>V: insert-selection(PRIMARY) \n\ 
      Shift<Btn1Down>: select-start() \n\ 
      Shift<Btn1Motion>: select-extend() \n\ 
      Shift<Btn1Up>: select-end(CLIPBOARD) \n\

mà tôi tin là một phần ở đó nhưng không thể hiện cách ghi đè Ctrl+ C.

Câu trả lời:


8

Đó là "một phần ở đó", nhưng gặp phải vấn đề là không có ký tự (byte đơn) được xác định trước tương ứng với Ctrl+ Shift+ Choặc Ctrl+ Shift+ V. Bạn cần ký tự byte đơn đó cho intrcài đặt ngắt ( ) với stty. Tương tự, control + V là lnextcài đặt bằng chữ tiếp theo ( ) stty.

Bạn có thể sử dụng tài nguyên dịch để gửi một ký tự Ctrl+ Cbằng cách sử dụng stringtính năng, ví dụ: một cái gì đó giống như các dòng này trong translationstài nguyên:

ctrl shift <key>C : string(0x03) \n\
ctrl shift <key>V : string(0x16) \n\

và sau đó gán các phím không được dịch chuyển (đặt dấu ngã ~trước từ khóa `shift).

Từ nhận xét tiếp theo, tôi đồng ý rằng chỉ cần xác định mẫu chưa dịch chuyển là đủ:

~Shift Ctrl <KeyPress> v: insert-selection(CLIPBOARD)\n\
~Shift Ctrl <KeyPress> c: copy-selection(CLIPBOARD)\n

một vài lưu ý (có thể được ghi lại, nhưng mã nguồn giúp):

  • <KeyPress> có nghĩa giống như <Key>
  • các sửa đổi (và <KeyPress>) được khớp với trường hợp bỏ qua.
  • các bộ phận ở phía bên phải của :trường hợp nhạy cảm.

Thông thường không có bản dịch nào được thực hiện cho Ctrl+ Ccó hoặc không có công cụ sửa đổi shift. xterm chỉ đơn giản là lấy một XKeyEventcái có thông tin sửa đổi và ký tự, và giải mã . Tài translationsnguyên thay đổi các sự kiện có thể được gửi đến xterm.

Bạn sẽ sử dụng công cụ sửa đổi trong bản dịch để giới hạn các kết quả khớp, ví dụ, bỏ qua Shiftcó nghĩa là nó khớp với việc phím shift có được nhấn hay không. Thêm một công cụ sửa đổi rõ ràng ~shift( không thay đổi) không có hiệu lực đối với trận đấu shift.

Đọc thêm:


Bạn có phiền khi đăng một ví dụ đầy đủ hơn một chút cho cả Ctrl + C, Ctrl + Shift + C, Ctrl + V, Ctrl + Shift + V. Tôi đang cố gắng thực hiện điều tương tự như được mô tả và hoàn thành ở đây Askubfox.com/questions/53688/ Khăn ngoại trừ xterm
William

1
Vì vậy, điều này dường như hoạt động ~Shift Ctrl <KeyPress> v: insert-selection(CLIPBOARD)\n\ ~Shift Ctrl <KeyPress> c: copy-selection(CLIPBOARD)\n Nó xuất hiện không cần phải thay đổi Ctrl + Shift + C và Ctrl + Shift + V vì nó tự động làm như vậy.
William

Tôi đã đánh dấu đây là câu trả lời được chấp nhận. Cảm ơn bạn! Có một lệnh tương tự làm cho công việc này hoạt động trong gnome-terminalTôi đang cố gắng tìm cách chọn văn bản trên nhiều trang mà xterm dường như không hỗ trợ unix.stackexchange.com/questions/339411/
William

3

Điều này dường như để làm việc trong xterm

xterm -xrm 'XTerm*VT100.Translations: #override\n\
 ~Shift <KeyPress> Prior: scroll-back(1,halfpage)\n\
 ~Shift <KeyPress> Next:  scroll-forw(1,halfpage)\n\
  Shift <KeyPress> Prior: string(0x1b)string("[5~")\n\
  Shift <KeyPress> Next:  string(0x1b)string("[6~")\n\
 ~Shift Ctrl <KeyPress> v: insert-selection(CLIPBOARD)\n\
 ~Shift Ctrl <KeyPress> c: copy-selection(CLIPBOARD)\n
'
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.