Saya ingin mengubah perilaku fill-paragraph
dalam mode tertentu (misalnya LaTeX-mode
disediakan oleh AucTeX
).
Saya hanya bisa memutar kunci M-q
, tetapi saya juga menggunakan evil-mode
implementasi yang evil-fill-and-move
menggunakan fill-region
. Idealnya, fungsi isi kustom saya untuk menimpa kedua fungsi fill-paragraph
(sehingga berfungsi dengan M-q
) dan fill-region
(jadi berfungsi dengan evil
).
Dengan anggapan bahwa saya memiliki program mandiri format
yang menggunakan kode LaTeX via stdin
dan menampilkan kode yang diformat stdout
, bagaimana saya akan mengganti dua fungsi pengisian di atas untuk digunakan format
?
(Catatan: ini mirip dengan vim
's formatprg
pilihan.)
latex
init-file
auctex
fill-paragraph
Kevin
sumber
sumber
M-q
memengaruhievil-fill-and-move
? Saya tidak menggunakan kejahatan maka saya ingin tahu. Jika wilayah tetapfill-paragraph
panggilan aktiffill-region
. Jadi, Anda dapat menyarankan atau menggantifill-region
dengan fungsi Anda.evil-fill-and-move
terikat pada urutan kuncigq
dalam mode normal kejahatan. RebindingM-q
seharusnya tidak memengaruhi ikatan kunci ini. Dalam beberapa hal, pertanyaan saya sebenarnya adalah dua pertanyaan: 1) Bagaimana cara mengganti dua fungsi? 2) Bagaimana cara menggunakan program eksternal? Alasan untuk 2) adalah bahwa saya sudah memiliki solusi eksternal, non-Elisp.(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))
manayour-fill-function
defun elisp kustom Anda. Ini akan menetapkan kombo kunci itu hanya di Auctex. Anda mungkin bisa menggunakanshell-command-on-region
argumen REPLACE untuk didefinisikanyour-fill-function
.Jawaban:
Akan lebih baik memiliki 2 fungsi, meskipun yang satu dapat diimplementasikan dalam hal yang lain. Alasannya adalah bahwa paragraf adalah wilayah implisit , sehingga input dalam kedua kasus harus berbeda
Untuk mengganti fungsi dengan yang lain, apa pun ikatan kuncinya, gunakan remap keybindings:
sumber