如何为Lisp模式配置smartparens?

3

在Lisp模式下,是否有可能配置smartparens以使其不插入第二个单引号(')?


不是非常清晰的描述。 - Drew
问题在于单引号 ' 在Lisp中用于引用列表,因此每次我需要引用一个列表时,都必须删除第二个单引号。 - rogergl
也许可以举个例子,展示“第二个引号”。我猜你是说如果你输入 ',那么智能括号会插入 '',对吗? - Drew
如果您想引用一个列表,可以先选择它,然后再进行引用。 - louxiu
1个回答

7
是的。这是简单的方法:

是的。 这是简单的方法:

(require 'smartparens-config)

这里设置了一些默认的smartparens配置,其中大部分我认为是有用或无害的(可以通过M-x find-library <RET> smartparens-config查看)。其中一个配置在各种Lisp模式下禁用了单引号配对。


这应该几乎可以解决任何单引号配对可能导致的问题。唯一似乎无法解决的地方是eval-expressionM-:)命令,因此我添加了这一行:

(sp-local-pair 'minibuffer-inactive-mode "'" nil :actions nil)

这将影响所有使用迷你缓冲区进行输入的命令,因此如果您经常在迷你缓冲区中使用单引号,您可能需要找到一个更为狭窄的解决方案。


如果您想进行更多微调,请参阅此处相关的smartparens文档。


2
为了更专注于的解决方案,在eval-expression中禁用成对的单引号,我使用以下代码:(sp-local-pair 'minibuffer-inactive-mode "'" nil :actions nil :unless '(my-in-eval-expression-p)) (defun my-in-eval-expression-p (id action context) (equalp last-command 'eval-expression)) - Davor Cubranic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接