在Textmate中,我可以通过选择并点击开头字符来围绕文本包围封闭的字符('(','[','''等)。例如,如果我选择word
并点击(
,它将成为(word)
。Emacs如何调用此功能以及如何启用它?
答案 0 :(得分:23)
对于parens你可以做 M - (。对于括号/大括号/引号,你可以这样做:
(global-set-key (kbd "M-[") 'insert-pair)
(global-set-key (kbd "M-{") 'insert-pair)
(global-set-key (kbd "M-\"") 'insert-pair)
请注意,如果您没有突出显示区域,则只需插入一对whatevers并将光标放在它们之间。删除匹配的whatevers也很方便
(global-set-key (kbd "M-)") 'delete-pair)
修改强>
关于覆盖backward-paragraph
的评论中的好点。您可以将其绑定到 C - {,这可能会干扰主要模式中的某些内容。 insert-pair
获取最后一个键并执行查找以查看要插入的对,因此如果您不想将其绑定到某些内容 - {,则可以绑定到此函数:< / p>
(defun my-insert-braces ()
(interactive)
(if (region-active-p)
(insert-pair 1 ?{ ?})
(insert "{}")
(backward-char)))
答案 1 :(得分:7)
我使用http://www.emacswiki.org/emacs/ParEdit。 M-(正是这样。
答案 2 :(得分:6)
Autopair是这些工具中最好的一种
答案 3 :(得分:5)
您可以查看wrap-region。
答案 4 :(得分:5)
我还要看一下骨架模式 http://ggorjan.blogspot.com/2007/05/skeleton-pair-mode-in-emacs.html
它特别适用于括号。
答案 5 :(得分:2)
有textmate-mode。
来自Emacswiki:
请参阅textmate-mode以尝试使用括号和引号的TextMate行为(自动关闭,覆盖,智能删除)。
答案 6 :(得分:1)
现在还有Corral。它的“做我的意思”行为使得这个过程比手动选择文本和按键更快。
(免责声明:我是作者)
答案 7 :(得分:1)
如果您使用smartparens,只需选择文本,然后键入该对。 Smartparens wiki: Wrapping
答案 8 :(得分:1)
自Emacs 24.1(2012-06发行)以来。
将其放在您的emacs初始化中:(电对模式1)。
现在,如果您选择一个单词并点击(,它将变成(单词)。与“,[,{等。