]> git.eshelyaron.com Git - emacs.git/commitdiff
* simple.el (kill-whole-line): New function.
authorKai Großjohann <kgrossjo@eu.uu.net>
Mon, 19 May 2003 15:47:14 +0000 (15:47 +0000)
committerKai Großjohann <kgrossjo@eu.uu.net>
Mon, 19 May 2003 15:47:14 +0000 (15:47 +0000)
* bindings.el (global-map): Bind it.

lisp/ChangeLog
lisp/bindings.el
lisp/simple.el

index e90f4445ce0523c312fbd61c12caabf59f8bc74e..11eab58f2feaaec5d7412ee94aa764352cb4ebbd 100644 (file)
@@ -1,3 +1,8 @@
+2003-05-19  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
+
+       * simple.el (kill-whole-line): New function.
+       * bindings.el (global-map): Bind it.
+
 2003-05-19  Richard M. Stallman  <rms@gnu.org>
 
        * net/goto-addr.el (goto-address-fontify-maximum-size):
index f95a3f588c22ebaeec1d82ffabbb884c621d68d9..7568c89c858755d556c342141607f4ad271809ad 100644 (file)
@@ -743,6 +743,7 @@ language you are using."
 ;(define-key global-map [delete] 'backward-delete-char)
 
 ;; natural bindings for terminal keycaps --- defined in X keysym order
+(define-key global-map [S-backspace]    'kill-whole-line)
 (define-key global-map [home]          'beginning-of-line)
 (define-key global-map [C-home]                'beginning-of-buffer)
 (define-key global-map [M-home]                'beginning-of-buffer-other-window)
index c726bf745bc6a84d3dd26e585ee0566d88388e4a..64b56d5dfbb2691352da600d35377b8cc51921c0 100644 (file)
@@ -2205,6 +2205,25 @@ even beep.)"
                       (goto-char end))))
                 (point))))
 
+(defun kill-whole-line (&optional arg)
+  "Kill current line.
+With prefix arg, kill that many lines from point.
+If arg is negative, kill backwards.
+If arg is zero, kill current line but exclude the trailing newline."
+  (interactive "P")
+  (setq arg (prefix-numeric-value arg))
+  (cond ((zerop arg)
+        (kill-region (point) (progn (forward-visible-line 0) (point)))
+        (kill-region (point) (progn (end-of-visible-line) (point))))
+       ((< arg 0)
+        (kill-line 1)
+        (kill-line (1+ arg))
+        (unless (bobp) (forward-visible-line -1)))
+       (t
+        (kill-line 0)
+        (if (eobp)
+            (signal 'end-of-buffer nil)
+          (kill-line arg)))))
 
 (defun forward-visible-line (arg)
   "Move forward by ARG lines, ignoring currently invisible newlines only.