From 348de80b31f6de0a286d83d2808beb47954d74f5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kai=20Gro=C3=9Fjohann?= Date: Mon, 19 May 2003 15:47:14 +0000 Subject: [PATCH] * simple.el (kill-whole-line): New function. * bindings.el (global-map): Bind it. --- lisp/ChangeLog | 5 +++++ lisp/bindings.el | 1 + lisp/simple.el | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e90f4445ce0..11eab58f2fe 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2003-05-19 Kai Gro,A_(Bjohann + + * simple.el (kill-whole-line): New function. + * bindings.el (global-map): Bind it. + 2003-05-19 Richard M. Stallman * net/goto-addr.el (goto-address-fontify-maximum-size): diff --git a/lisp/bindings.el b/lisp/bindings.el index f95a3f588c2..7568c89c858 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -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) diff --git a/lisp/simple.el b/lisp/simple.el index c726bf745bc..64b56d5dfbb 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -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. -- 2.39.2