Tôi muốn thay đổi hành vi của fill-paragraphmột số chế độ (ví dụ LaTeX-modeđược cung cấp bởi AucTeX).
Tôi chỉ có thể rebind key M-q, nhưng tôi cũng đang sử dụng ai evil-modethực hiện việc evil-fill-and-movesử dụng fill-region. Lý tưởng nhất là chức năng điền tùy chỉnh của tôi để ghi đè cả hai chức năng fill-paragraph(để nó hoạt động với M-q) và fill-region(vì vậy nó hoạt động với evil).
Giả sử rằng tôi có một chương trình độc lập formatnhận mã LaTeX thông qua stdinvà xuất mã được định dạng stdout, tôi sẽ sử dụng cách nào để ghi đè hai hàm điền trên để sử dụng format?
(Lưu ý: đây là tương tự như vimcủa formatprgtùy chọn.)
evil-fill-and-movebị ràng buộc với chuỗi khóa gqtrong chế độ bình thường của cái ác. Rebinding M-qkhông nên ảnh hưởng đến keybinding này. Ở một khía cạnh nào đó, câu hỏi của tôi thực sự là hai câu hỏi: 1) Làm thế nào để thay thế hai chức năng? 2) Làm thế nào để sử dụng một chương trình bên ngoài? Lý do cho 2) là tôi đã có một giải pháp bên ngoài, không phải là Elisp.
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))nơi your-fill-functionlà bạn defun tùy chỉnh elisp. Điều này sẽ thiết lập tổ hợp phím đó chỉ trong Auctex. Bạn có thể có thể sử dụng shell-command-on-regionvới đối số REPLACE để xác định your-fill-function.
M-qảnh hưởngevil-fill-and-movetrong anyway? Tôi không sử dụng cái ác do đó tôi tò mò. Nếu khu vực làfill-paragraphcuộc gọi hoạt độngfill-regionnào. Vì vậy, bạn có thể tư vấn hoặc thay thếfill-regionvới chức năng của bạn.