删除Emacs中的当前(非原子)s表达式

时间:2012-09-27 08:16:40

标签: emacs paredit

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

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

进入这个

(defun foo (bar)
  |)

能够做到这似乎是一件有用的事情,但我无法在Paredit cheat sheet上找到相关的(一步)命令。

3 个答案:

答案 0 :(得分:4)

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

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

例如:

(define-key global-map (kbd "C-c C-d") 
    (lambda () (interactive) (backward-up-list) (paredit-kill)))

答案 1 :(得分:1)

C-M-u在paredit 23中的字符串中做正确的事情,所以`C-M-u C-M-k'甚至可以在字符串中工作。

答案 2 :(得分:0)

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

比此命令失败。

这就是

存在ar-kill-parentized-atpt和相关扩展的原因

http://launchpad.net/s-x-emacs-werkstatt/

相关问题