Tôi muốn thay đổi hành vi của fill-paragraph
mộ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-mode
thực hiện việc evil-fill-and-move
sử 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 format
nhận mã LaTeX thông qua stdin
và 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ư vim
của formatprg
tùy chọn.)
evil-fill-and-move
bị ràng buộc với chuỗi khóa gq
trong chế độ bình thường của cái ác. Rebinding M-q
khô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-function
là 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-region
với đối số REPLACE để xác định your-fill-function
.
M-q
ảnh hưởngevil-fill-and-move
trong anyway? Tôi không sử dụng cái ác do đó tôi tò mò. Nếu khu vực làfill-paragraph
cuộc gọi hoạt độngfill-region
nào. Vì vậy, bạn có thể tư vấn hoặc thay thếfill-region
với chức năng của bạn.