有内置的emacs函数用于围绕带括号的区域,我在此处找到它:https://stackoverflow.com/a/2952021/1635919。是否有类似的方法用美元($)围绕一个区域?
C-h f insert-pair
告诉我这个函数能够用任何字符包围sexp,那么如何在$ M-$
中绑定周围环境,如链接答案?
我的Emacs:GNU Emacs 24.3.1(i686-pc-linux-gnu,GTK +版本3.10.7)
答案 0 :(得分:3)
您可以复制M-(通过查看insert-parentheses函数来执行。它所做的只是使用硬编码参数调用insert-pair,因此您可以将M-$与a-m函数绑定到以下函数:
(defun insert-dolla-dolla-bills-yall (&optional arg)
(interactive "P")
(insert-pair arg ?\$ ?\$))
答案 1 :(得分:2)
将变量insert-pair-alist
设置为包含(?\$ ?\$)
:
(add-to-list 'insert-pair-alist (list ?\$ ?\$))
然后将密钥绑定到insert-pair
,以执行您想要的操作:
(global-set-key (kbd "M-$") 'insert-pair)
答案 2 :(得分:1)
如果您使用库yasnippet
(https://github.com/capitaomorte/yasnippet),它内置支持在所选区域的任一端包装带有自定义代码的环绕声区域:
注意:最新版本的yasnippet
似乎已将功能名称从yas/selected-text
更改为yas-selected-text
。但是,似乎还有向后版本兼容的支持buit-in。
# -*- mode: snippet -*-
# name: dollar-surround
# key: dollar-surround
# binding: C-I $
# --
$`yas/selected-text`$
答案 3 :(得分:0)