Saya mencari di Google dan menemukan posting ini oleh John D. Cook . Dia menunjukkan bagaimana membangun fungsi interaktif sederhana untuk mendapatkan tag HTML / XML di seluruh wilayah dengan mudah. Dari sana saya memodifikasi fungsi untuk bertanya dua kali.
(defun tag-word-or-region (text-begin text-end)
"Surround current word or region with given text."
(interactive "sStart tag: \nsEnd tag: ")
(let (pos1 pos2 bds)
(if (and transient-mark-mode mark-active)
(progn
(goto-char (region-end))
(insert text-end)
(goto-char (region-beginning))
(insert text-begin))
(progn
(setq bds (bounds-of-thing-at-point 'symbol))
(goto-char (cdr bds))
(insert text-end)
(goto-char (car bds))
(insert text-begin)))))
Lebih penting lagi, fungsi ini dapat juga digunakan sebagai alat bantu, misalnya ketika Anda ingin mengikat kunci untuk memetakan beberapa bit teks tertentu.
(defun tag-php ()
(interactive)
(tag-word-or-region "<?php " "?>"))
<?php
...?>
, dan kemudian, ketika Anda memilih wilayah dan jenis<?php
(atau pengikat tombol), buat pasangan itu dibungkus dengan pasangan. Tetapi afaik tidak ada cara mudah untuk menggunakan perpustakaan ini jika Anda memiliki banyak pasangan satu-shot.