有一个内置的 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)
您可以通过查看插入括号函数来复制 M-( 所做的事情。它所做的只是调用带有硬编码参数的插入对,因此您可以将 M-$ 类似地绑定到以下函数:
(defun insert-dolla-dolla-bills-yall (&optional arg)
(interactive "P")
(insert-pair arg ?\$ ?\$))
设置变量insert-pair-alist
包括(?\$ ?\$)
:
(add-to-list 'insert-pair-alist (list ?\$ ?\$))
然后将一个键绑定到insert-pair
, 做你想做的事:
(global-set-key (kbd "M-$") 'insert-pair)
如果您使用库YASnippet,它内置支持在所选区域的任一端使用自定义代码包装环绕区域:
注意:看起来最新版本的 YASnippet 已将函数名称从 更改yas/selected-text
为yas-selected-text
。但是,似乎也有向后兼容的版本。
# -*- mode: snippet -*-
# name: dollar-surround
# key: dollar-surround
# binding: C-I $
# --
$`yas/selected-text`$