From: Juri Linkov Date: Thu, 20 Dec 2018 23:41:25 +0000 (+0200) Subject: * lisp/windmove.el (windmove-delete-in-direction): Change prefix arg C-u X-Git-Tag: emacs-27.0.90~3940 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=157ada833f36b9919be44ad4ecbae6d94c808dec;p=emacs.git * lisp/windmove.el (windmove-delete-in-direction): Change prefix arg C-u to kill the buffer. Add prefix arg M-0 to delete the selected window. (Bug#32790) --- diff --git a/etc/NEWS b/etc/NEWS index 7a2123a2128..31067c3ff3e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -346,8 +346,9 @@ The new command 'windmove-delete-default-keybindings' binds default keys with provided prefix (by default, C-x) and modifiers (by default, Shift) to the commands that delete the window in the specified direction. For example, 'C-x S-down' deletes the window below. -With a prefix arg 'C-u', deletes the selected window and selects -the window that was in the specified direction. +With a prefix arg 'C-u', also kills the buffer in that window. +With `M-0', deletes the selected window and selects the window +that was in the specified direction. ** Octave mode The mode is automatically enabled in files that start with the diff --git a/lisp/windmove.el b/lisp/windmove.el index c16c12444a0..75b9e0cf599 100644 --- a/lisp/windmove.el +++ b/lisp/windmove.el @@ -684,7 +684,8 @@ Default value of MODIFIERS is `shift-meta'." (defun windmove-delete-in-direction (dir &optional arg) "Delete the window at direction DIR. -If prefix ARG is `C-u', delete the selected window and +If prefix ARG is `\\[universal-argument]', also kill the buffer in that window. +With `M-0' prefix, delete the selected window and select the window at direction DIR. When `windmove-wrap-around' is non-nil, takes the window from the opposite side of the frame." @@ -693,7 +694,9 @@ from the opposite side of the frame." (cond ((null other-window) (user-error "No window %s from selected window" dir)) (t - (if (not (consp arg)) + (when (equal arg '(4)) + (kill-buffer (window-buffer other-window))) + (if (not (equal arg 0)) (delete-window other-window) (delete-window (selected-window)) (select-window other-window))))))