Saya menulis (dan menulis ulang) banyak rumus matematika di LaTeX dengan Emacs. Saya sering mengalami situasi di mana saya ingin mengubah sepasang tanda kurung yang cocok, untuk meningkatkan keterbacaan. Emacs saya cukup baik untuk menunjukkan kepada saya pembatas yang cocok, tetapi bagaimana cara mengubahnya secara terprogram?
Misalnya, ubah pembatas luar dalam sekali jalan:
( (\sqrt{a} + b)^{-1} + c^{-1} )
untuk
[ (\sqrt{a} + b)^{-1} + c^{-1} ]
latex
replace
balanced-parentheses
Mankka
sumber
sumber
\bigl(...\bigr)
menjadi\Bigl(...\Bigr)
dll.forward-sexp-function
(yang saya duga mode TeX), atau akan digunakanscan-sexps
untuk menemukan kemungkinan kecocokan. Dalam kasus selanjutnya, pertandingan tidak akan selalu benar. Jadi, jika semua yang Anda butuhkan adalah untuk mencocokkan pembatas yang cocok, Anda dapat memeriksa sintaks karakter di bawah titik. Jika ya$
, maka harus ada kecocokan, dan Anda bisa menggunakanforwad-sexp
untuk mendapatkan kecocokannya.Jawaban:
Saya menggunakan kode di bawah ini dan ikat
yf/replace-or-delete-pair
keM-D
.Contoh penggunaan: dengan titik aktif
(
, saya menekanM-D [
dan()
pasangan menjadi[]
pasangan. Jika Anda menekanM-D RET
sebagai gantinya, pasangan akan dihapus.Kode ini menggunakan tabel sintaks, yang berarti bahwa untuk beberapa pasangan Anda harus menentukan sendiri paren penutup. misal dalam mode-html,
()
bisa diganti<>
dengan memukulM-D <
. Namun, dalam banyak mode<>
bukan pasangan yang dikenali, danM-D <
akan mengatakan "Tidak tahu bagaimana menutup <". Anda kemudian bisa mengetik>
.sumber
Bagi mereka yang menggunakan kejahatan Anda dapat menggunakan kejahatan-surround yang memberi Anda
c s
gerakan (perubahan, surround).Sebagai contoh Anda kemudian lakukan saja
c s ( [
(gerakan, dari jenis paren, ke jenis paren)sumber
ar-parentized2bracketed-atpt
akan melakukan tugas itu.Muncul bersama
ar-braced2parentized-atpt
dan pada dasarnya semua kombinasi masing-masing.Dapatkan dari thingatpt-transform-delimited.el of
URL: https://github.com/andreas-roehler/thing-at-point-utils
Kelas perintah yang abstrak mengubah semua formulir yang dibatasi, misalnya:
Perintah-perintah ini dikirimkan dalam repo yang sama oleh
thingatpt-transform-generic-delimited.el
sumber
Tanda kurung yang cocok divisualisasikan dengan
show-paren-mode
. Pendekatan logis adalah mendasarkan fungsi untuk mengubah parens ke logika dan fungsi dasar yang sama. Saat mencocokkan parens disorot, Anda dapat memanggil fungsi yangtoggle-parens
ditentukan di bawah ini:sumber