]> git.eshelyaron.com Git - emacs.git/commitdiff
(kill-backward-up-list): New function.
authorEli Zaretskii <eliz@gnu.org>
Sat, 4 Sep 2004 12:56:54 +0000 (12:56 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 4 Sep 2004 12:56:54 +0000 (12:56 +0000)
lisp/emacs-lisp/lisp.el

index 46d3d2625a1174030a27f77064e4df0de9b1610a..63d9f759cebbfd6e2e7a8cc30ddcc009474fa913 100644 (file)
@@ -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"))))
 \f
 (defvar beginning-of-defun-function nil
   "If non-nil, function for `beginning-of-defun-raw' to call.