+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):
;(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)
(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.