2

有一个内置的 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)

4

4 回答 4

3

您可以通过查看插入括号函数来复制 M-( 所做的事情。它所做的只是调用带有硬编码参数的插入对,因此您可以将 M-$ 类似地绑定到以下函数:

    (defun insert-dolla-dolla-bills-yall (&optional arg)
      (interactive "P")
      (insert-pair arg ?\$ ?\$))
于 2014-10-23T16:28:33.427 回答
2

设置变量insert-pair-alist包括(?\$ ?\$)

(add-to-list 'insert-pair-alist (list ?\$ ?\$))

然后将一个键绑定到insert-pair, 做你想做的事:

(global-set-key (kbd "M-$") 'insert-pair)
于 2014-10-23T16:59:31.573 回答
2

如果您使用库YASnippet,它内置支持在所选区域的任一端使用自定义代码包装环绕区域:

注意:看起来最新版本的 YASnippet 已将函数名称从 更改yas/selected-textyas-selected-text。但是,似乎也有向后兼容的版本。

# -*- mode: snippet -*-
# name: dollar-surround
# key: dollar-surround
# binding: C-I $
# --
$`yas/selected-text`$
于 2014-10-23T21:27:37.043 回答
0

有一个工具包与一堆相关的工具包一起提供。

它被称为ar-dollar-region-atpt

在这里获取:

https://launchpad.net/sx-emacs-werkstatt/

于 2014-10-23T16:25:40.783 回答