summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/lisp.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2004-09-04 12:56:54 +0000
committerEli Zaretskii <eliz@gnu.org>2004-09-04 12:56:54 +0000
commitde6d64b22a279f0f74462bf12c78d429d85a3573 (patch)
tree084251c40700f755c9893bad1309199f0b14a4e2 /lisp/emacs-lisp/lisp.el
parent0ad10447917c7c709046b5b0a7d6a4208be3115e (diff)
downloademacs-de6d64b22a279f0f74462bf12c78d429d85a3573.tar.gz
emacs-de6d64b22a279f0f74462bf12c78d429d85a3573.tar.bz2
emacs-de6d64b22a279f0f74462bf12c78d429d85a3573.zip
(kill-backward-up-list): New function.
Diffstat (limited to 'lisp/emacs-lisp/lisp.el')
-rw-r--r--lisp/emacs-lisp/lisp.el14
1 files changed, 14 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index 46d3d2625a1..63d9f759ceb 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -149,6 +149,20 @@ With ARG, kill that many sexps before the cursor.
Negative arg -N means kill N sexps after the cursor."
(interactive "p")
(kill-sexp (- (or arg 1))))
+
+;; After Zmacs:
+(defun kill-backward-up-list (&optional arg)
+ "Kill the form containing the current sexp, leaving the sexp itself.
+A prefix argument ARG causes the relevant number of surrounding
+forms to be removed."
+ (interactive "*p")
+ (let ((current-sexp (thing-at-point 'sexp)))
+ (if current-sexp
+ (save-excursion
+ (backward-up-list arg)
+ (kill-sexp)
+ (insert current-sexp))
+ (error "Not at a sexp"))))
(defvar beginning-of-defun-function nil
"If non-nil, function for `beginning-of-defun-raw' to call.