Emacs: làm thế nào để chọn ràng buộc khóa tùy chỉnh tốt?


10

Tôi là một người mới bắt đầu Emacs và tôi muốn để bắt đầu thêm một số tổ hợp phím tùy biến toàn cục cho các nhiệm vụ thông thường như replace-string, replace-regexvv mà không có chúng bằng cách mặc định. Tôi muốn đưa ra lựa chọn tốt, và tôi thấy một vài vấn đề:

  • Xem tất cả các tùy chọn của tôi - Làm cách nào tôi có thể thấy toàn bộ các phím không bị ràng buộc trên tất cả các chế độ mà tôi thường xuyên sử dụng?

  • Khả năng tương thích / quy ước - Có các ràng buộc không chính thức chung hoặc khóa "không gian người dùng" chung để bắt đầu các ràng buộc tùy chỉnh cá nhân không?

  • Các vấn đề khác - Bất cứ điều gì khác tôi nên xem xét?

Câu trả lời:


9

Hãy thử xem câu hỏi này trên SO: Có tổ hợp phím emacs nào dành riêng cho các lệnh tùy chỉnh không?

Về việc xem những gì có sẵn, có unboundthư viện (xem câu trả lời đầu tiên cho câu hỏi trên).

Một quy ước (lấy từ câu trả lời của tôi cho câu hỏi đó ) là:

Bạn có thể xác định lại bất cứ điều gì, nhưng quy ước là sử dụng C-c l ( lbất kỳ chữ cái nào).

Là người dùng, bạn có thể xác định lại bất kỳ khóa nào; nhưng thường là tốt nhất để bám vào các chuỗi chính bao gồm C-c theo sau là một chữ cái (chữ hoa hoặc chữ thường). Các khóa này được "dành riêng cho người dùng", vì vậy chúng sẽ không xung đột với bất kỳ tiện ích mở rộng Emacs nào được thiết kế đúng. Các phím chức năng F5thông qua F9cũng được dành riêng cho người dùng. Nếu bạn xác định lại một số khóa khác, định nghĩa của bạn có thể bị ghi đè bởi một số tiện ích mở rộng hoặc chế độ chính xác định lại cùng một khóa.

Chỉ cần nhớ rằng các ràng buộc chính là khác nhau ở mỗi chế độ (chính và phụ) khác nhau, vì vậy những gì có sẵn trong một bộ đệm không nhất thiết phải có sẵn trong một bộ đệm khác. Và làm cho các ràng buộc quan trọng của bạn ở cấp độ địa phương nhất có thể. Ví dụ, nếu các chức năng làm điều gì đó để một dòng mã, không làm cho một chìa khóa toàn cầu bắt buộc đối với nó, định nghĩa nó trong keymap thích hợp ( c++-mode-map, ruby-mode-map, vv).

Theo như nhiệm vụ cụ thể của bạn, bạn có nhận thấy:

  • M-% còn query-replace
  • C-M-% còn query-replace-regexp

Ngoài ra, khi bạn đang tìm kiếm ( C-shoặc C-M-s(và các biến thể ngược)), bạn có thể nhập M-%(hoặc C-M-%) để nhập trực tiếp query-replace( query-replace-regexp) với chuỗi tìm kiếm làm thứ thay thế ... Khá tiện dụng.

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.