Đối với ngữ cảnh, tôi là một cái gì đó của một newbie emacs. Tôi đã không sử dụng nó cho rất lâu, nhưng đã được sử dụng nó nhiều hơn và nhiều hơn nữa (tôi thích nó rất nhiều). Ngoài ra tôi cảm thấy thoải mái với lisp, nhưng không phải siêu quen thuộc với elisp.Làm cách nào để liên kết cụm từ thông dụng với tổ hợp phím trong các emacs?
Điều tôi cần làm là liên kết biểu thức chính quy với tổ hợp bàn phím vì tôi thường sử dụng regex cụ thể này.
Những gì tôi đã làm:
M-C-s ^.*Table\(\(.*\n\)*?GO\)
Lưu ý, tôi đã sử dụng xuống dòng ở trên, nhưng tôi đã phát hiện ra rằng cho isearch-forward-regexp
, bạn thực sự cần phải thay thế \n
trong biểu thức chính quy với kết quả của Cq Qj. Điều này chèn một dòng mới (không kết thúc lệnh) cho phép tôi đặt một dòng mới vào biểu thức và kết hợp trên các dòng.
Làm cách nào để gắn kết kết hợp này với tổ hợp phím?
Tôi mơ hồ hiểu rằng tôi cần tạo một hàm elisp thực hiện isearch-forward-regexp
với biểu thức, nhưng tôi mờ về chi tiết. Tôi đã tìm kiếm google và tìm thấy hầu hết các tài liệu được một chút khó hiểu.
Làm cách nào để liên kết biểu thức chính quy với tổ hợp phím trong biểu tượng cảm xúc?
Mike Stone đã có câu trả lời tốt nhất cho đến nay - không chính xác những gì tôi đang tìm kiếm nhưng nó làm việc cho những gì tôi cần
Edit - loại này làm việc, nhưng sau khi lưu trữ macro, khi tôi quay lại sử dụng sau này, tôi không thể sử dụng nó với Cx e. (Ví dụ, nếu tôi khởi động lại emacs và sau đó gõ Mx vĩ mô tên, và sau đó Cx e, tôi nhận được một tin nhắn trong minibuffer như 'không ngoái kbd vĩ mô' hoặc cái gì đó tương tự)
@ Mike Stone - Cảm ơn thông tin. Tôi đã cố gắng tạo ra một vĩ mô như vậy:
C-x(M-C-s ^.*Table\(\(.*C-q C-J\)*?GO\) C-x)
này tạo vĩ mô của tôi, nhưng khi tôi thực hiện vĩ mô của tôi, tôi đã không nhận được làm nổi bật tương tự mà tôi thường nhận được khi tôi sử dụng isearch-forward-regexp
. Thay vào đó, nó chỉ nhảy vào cuối trận đấu tiếp theo của biểu thức. Điều đó không thực sự hiệu quả với những gì tôi cần. Bất kỳ ý tưởng?
Chỉnh sửa: Có vẻ như tôi có thể sử dụng macro để thực hiện những gì tôi muốn, tôi chỉ cần suy nghĩ bên ngoài hộp isearch-forward-regexp
. Tôi sẽ thử những gì bạn đề nghị.