Xóa lựa chọn thứ cấp mà không cần sử dụng chuột


8

Thỉnh thoảng, không có ý nghĩa gì với tôi bằng cách nào đó nghiền các phím hoặc chuột để tôi có được lựa chọn thứ cấp. Tôi không bao giờ sử dụng lựa chọn thứ cấp vì vậy tôi luôn muốn loại bỏ nó.

Làm thế nào tôi có thể xóa lựa chọn thứ cấp mà không cần sử dụng chuột?

Các ràng buộc mặc định để thiết lập lựa chọn thứ cấp bị chặn bởi trình quản lý cửa sổ của tôi, vì vậy không hoạt động trong emacs. Tôi thực sự không muốn buộc lại các lệnh này cho các sự kiện chuột khác: Tôi sử dụng chuột chỉ vì một số thứ, chúng hoạt động tốt và tôi không muốn thay đổi chúng. Tôi không thể đơn giản chạy các lệnh như mouse-start-junior: khi tôi thử điều đó, emacs cho tôi biết chúng phải bị ràng buộc với một sự kiện.


1
Cái này có hoạt động (delete-overlay secondary-mouse-overlay)không?
glucas

Câu trả lời:


7

Bạn sẽ có thể xóa lựa chọn thứ cấp bằng cách đánh giá:

(delete-overlay mouse-secondary-overlay)

Nếu bạn không bao giờ muốn có được lựa chọn thứ cấp, tôi tin rằng bạn chỉ có thể hủy liên kết các sự kiện chuột mặc định:

(global-unset-key [M-mouse-1])
(global-unset-key [M-drag-mouse-1])
(global-unset-key [M-down-mouse-1])
(global-unset-key [M-mouse-3])
(global-unset-key [M-mouse-2])

Tôi nhận được: Giá trị của các biểu tượng là biến là void: lớp phủ chuột thứ cấp
Croad Lang Sơn

Xin lỗi - tôi đã nhầm tên. Sửa nó ngay.
glucas

Tôi không thể kiểm tra điều này và đánh dấu nó là câu trả lời được chấp nhận vì tôi không biết làm thế nào để có được lựa chọn thứ cấp! Khi tôi đánh dấu thứ gì đó bằng lựa chọn thứ cấp, nó luôn luôn tình cờ, vì vậy tôi không biết tôi làm thế nào. Vỏ Gnome dường như chặn tất cả các kết hợp chuột mà tôi thử ... (mặc dù tôi không chắc M-down-mouse-1 nghĩa là gì)
Croad Langshan 8/03/2015

Tôi có thể giữ phím Alt và nút chuột trái để chọn văn bản với lựa chọn phụ, nhưng không biết gì về tương tác Gnome.
glucas

Một cách khác mà bạn có thể nhận được lựa chọn thứ cấp là nhấp chuột phải +. Điều đó sẽ đặt lựa chọn thứ cấp từ điểm đến bất cứ nơi nào bạn nhấp. Ngoài ra còn có các ràng buộc cho Alt + nhấp đúp hoặc nhấp ba lần vào các nút khác nhau. Tôi nghi ngờ người quản lý cửa sổ của bạn ăn cắp một số nhưng không phải tất cả các ràng buộc đó.
glucas

3

Bạn nói rằng bạn không bao giờ muốn sử dụng lựa chọn thứ cấp. Trong trường hợp đó, chỉ cần liên kết các khóa được ràng buộc với các lệnh lựa chọn thứ cấp theo mặc định với các lệnh mà bạn thấy hữu ích hơn. Hoặc hủy liên kết với họ, bằng cách ràng buộc họ với nil. Đây là những chìa khóa:

  • M-mouse-1( mouse-start-secondarytheo mặc định)
  • M-drag-mouse-1( mouse-set-secondarytheo mặc định)
  • M-down-mouse-1( mouse-drag-secondarytheo mặc định)
  • M-mouse-2( mouse-yank-secondarytheo mặc định)
  • M-mouse-3( mouse-secondary-save-then-killtheo mặc định)

Ví dụ:

(global-set-key [M-mouse-1] 'a-handy-mouse-command)

Mặt khác, nếu vấn đề là trình quản lý cửa sổ của bạn đánh cắp các khóa đó, thì hãy xem xét việc ràng buộc các khóa khác nhau với các lệnh đó. Chẳng hạn, thêm công cụ sửa đổi Controlvào từng phím mặc định: C-M-mouse-1v.v.

(global-set-key [C-M-mouse-1] 'mouse-start-secondary)

Và nếu vấn đề là bạn không muốn sử dụng chuột để thao tác lựa chọn thứ cấp, thì bạn có thể sử dụng bàn phím thay thế. Thư viện second-sel.elcó thể giúp với điều này và các cách khác để sử dụng lựa chọn thứ cấp.

Ví dụ: bạn có thể thoát khỏi lựa chọn thứ cấp một cách tương tác bất cứ lúc nào theo cách này, nếu bạn liên kết secondary-dwimvới C-M-y(ví dụ):

  1. C-SPC - để tạo một vùng hoạt động trống.
  2. C-1 C-M-y - để di chuyển lựa chọn thứ cấp đến khu vực (trống).

Đây là chuỗi doc của lệnh secondary-dwim, second-sel.elliên kết theo mặc định là C-M-y:

C-M-y runs the command secondary-dwim, which is an interactive
compiled Lisp function in `second-sel.el'.

It is bound to C-M-y, menu-bar edit secondary-dwim.

(secondary-dwim ARG)

Do-What-I-Mean with the secondary selection.
Prefix arg:

 None: Yank secondary.
 Zero: Select secondary as region.
 > 0:  Move secondary to region.
 < 0:  Swap region and secondary.

Details:

No prefix arg: Yank the secondary selection at point.  Move point to
the end of the inserted text.  Leave mark where it was.

Zero arg: Select the secondary selection and pop to its buffer.

Non-zero arg: Move the secondary selection to this buffer's region.

Negative arg: Also go to where the secondary selection was and select
it as the region.  That is, swap the region and the secondary
selection.
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.