我四处搜寻,发现了约翰·库克(John D. Cook)的这篇文章。他演示了如何构建一个简单的交互功能来轻松获取区域周围的HTML / XML标签。从那以后,我修改了功能以询问两次。
(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)))))
更重要的是,此功能还可以用作辅助工具,例如,当您想绑定键以映射某些特定的文本位时。
(defun tag-php ()
(interactive)
(tag-word-or-region "<?php " "?>"))
<?php
...?>
,然后在选择区域并键入<?php
(或键绑定)时,将其包装在该对中。但是,如果您有很多一次性镜头,afaik没有简单的方法来使用这些库。