[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proposal: new default bindings for winner and windmove
From: |
Daniel Colascione |
Subject: |
Re: Proposal: new default bindings for winner and windmove |
Date: |
Mon, 01 Jul 2024 19:18:36 -0400 |
Stefan Kangas <stefankangas@gmail.com> writes:
> Thus, I don't think I see any compelling reason not to go ahead with
> this change. I would propose that we now start discussing the specifics
> of how to go about doing that (patches, proposed alternative solutions).
How's this?
commit 0af9a3225fe0d8771772ee510abd122d2881b211
Author: Daniel Colascione <dancol@dancol.org>
Date: Mon Jul 1 19:17:10 2024 -0400
Directional bindings for windmove
* doc/emacs/windows.texi (Other Window): Describe new
directional bindings.
* etc/tutorials/TUTORIAL: Describe new directional bindings.
* lisp/windmove.el: Bind C-x 4 followed by an arrow key to the
corresponding windmove commands.
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 5ad6850fed9..581f74833d3 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -185,6 +185,27 @@ Other Window
back and finish supplying the minibuffer argument that is requested.
@xref{Minibuffer Edit}.
+@kindex C-x 4 LEFT
+@kindex C-x 4 RIGHT
+@kindex C-x 4 UP
+@kindex C-x 4 DOWN
+
+Using the keyboard, you can switch windows directionally by typing
+@kbd{C-x 4} followed by an arrow key. Emacs determines the direction of
+movement using the geometry of windows on the screen rather than history
+of recently-selected windows, so these commands may often by less
+surprising than @kbd{C-x o} above.
+
+@kindex C-x 4 S-LEFT
+@kindex C-x 4 S-RIGHT
+@kindex C-x 4 S-UP
+@kindex C-x 4 S-DOWN
+
+These commands are like the other directional movement commands, except
+that Emacs, instead of moving point to the window in the desired
+direction, moves the whole buffer state, as if taking the current buffer
+and moving it to the desired window.
+
@findex next-window-any-frame
The @code{other-window} command will normally only switch to the next
window in the current frame (unless otherwise configured). If you
diff --git a/etc/tutorials/TUTORIAL b/etc/tutorials/TUTORIAL
index 4718e0d9430..daba3e4615f 100644
--- a/etc/tutorials/TUTORIAL
+++ b/etc/tutorials/TUTORIAL
@@ -907,6 +907,11 @@ cursor which blinks when you are not typing. The other
windows have
their own cursor positions; if you are running Emacs in a graphical
display, those cursors are drawn as unblinking hollow boxes.
+You can also use arrow keys prefixed by C-x 4 to move
+between windows directionally.
+
+>> Type C-x 4 <up> to move to the window above the current one.
+
The command C-M-v is very useful when you are editing text in one
window and using the other window just for reference. Without leaving
the selected window, you can scroll the text in the other window with
diff --git a/lisp/windmove.el b/lisp/windmove.el
index b4e77102abd..db3b52393bf 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -854,6 +854,23 @@ windmove-swap-states-default-keybindings
:type windmove--default-keybindings-type
:version "28.1")
+;;;###autoload
+(define-key ctl-x-4-map [left] 'windmove-left)
+;;;###autoload
+(define-key ctl-x-4-map [right] 'windmove-right)
+;;;###autoload
+(define-key ctl-x-4-map [up] 'windmove-up)
+;;;###autoload
+(define-key ctl-x-4-map [down] 'windmove-down)
+;;;###autoload
+(define-key ctl-x-4-map [(shift left)] 'windmove-swap-states-left)
+;;;###autoload
+(define-key ctl-x-4-map [(shift right)] 'windmove-swap-states-right)
+;;;###autoload
+(define-key ctl-x-4-map [(shift up)] 'windmove-swap-states-up)
+;;;###autoload
+(define-key ctl-x-4-map [(shift down)] 'windmove-swap-states-down)
+
(provide 'windmove)
RE: [External] : Re: Proposal: new default bindings for winner and windmove, Drew Adams, 2024/07/01
Re: Proposal: new default bindings for winner and windmove, Richard Stallman, 2024/07/03
Re: Proposal: new default bindings for winner and windmove,
Daniel Colascione <=
- Re: Proposal: new default bindings for winner and windmove, Po Lu, 2024/07/01
- Re: Proposal: new default bindings for winner and windmove, Stefan Monnier, 2024/07/01
- Re: Proposal: new default bindings for winner and windmove, Po Lu, 2024/07/02
- Re: Proposal: new default bindings for winner and windmove, Stefan Monnier, 2024/07/02
- Re: Proposal: new default bindings for winner and windmove, Eli Zaretskii, 2024/07/02
- Re: Proposal: new default bindings for winner and windmove, Stefan Monnier, 2024/07/02
- Re: Proposal: new default bindings for winner and windmove, Eli Zaretskii, 2024/07/02
Re: Proposal: new default bindings for winner and windmove, Eli Zaretskii, 2024/07/02