5

有没有一种简单的方法可以根据光标位置删除最小可能的非原子 s 表达式?我想转这个(“|”是光标)

(defun foo (bar)
  (if bar
      |789
    (+ 456 123)))

进入这个

(defun foo (bar)
  |)

这似乎是一件有用的事情,但我在Paredit 备忘单上找不到相关的(一步)命令。

4

3 回答 3

4

我也没有找到预定义的命令。

幸运的是,使用 Emacs 很容易实现您自己的。

例如:

(define-key global-map (kbd "C-c C-d") 
    (lambda () (interactive) (backward-up-list) (paredit-kill)))
于 2012-09-27T08:44:16.483 回答
1

C-M-u在 paredit 23 中的字符串内做正确的事,所以 `CMu CMk' 即使在字符串内也能工作。

于 2013-06-13T19:13:17.933 回答
0

假设光标不在数字 789 处,而是在此位置的字符串“Foo”内。

比这个命令会失败。

这就是为什么 ar-kill-parentized-atpt 和相关扩展存在于

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

于 2012-09-30T16:11:27.093 回答