GNU bug report logs - #12132
24.1; M-p and M-n should follow behave similarly to M-f and M-b

Previous Next

Package: emacs;

Reported by: Daniel Neel <dneelyep <at> gmail.com>

Date: Fri, 3 Aug 2012 18:02:02 UTC

Severity: wishlist

Tags: notabug, wontfix

Found in version 24.1

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

Forwarded to http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00303.html

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 12132 in the body.
You can then email your comments to 12132 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#12132; Package emacs. (Fri, 03 Aug 2012 18:02:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Daniel Neel <dneelyep <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 03 Aug 2012 18:02:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Daniel Neel <dneelyep <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.1; M-p and M-n should follow behave similarly to M-f and M-b
Date: Fri, 3 Aug 2012 13:00:55 -0400
[Message part 1 (text/plain, inline)]
Hello all. Below is a quick suggestion originally intended to be submitted
as a bug. Sending through the mailing list because I don't have an email
client set up in Emacs yet.


My suggestion is to, by default, bind some movement behaviors to the M-p
and M-n keys. Currently, the default left and right cursor movement keys
are bound to C-f/b for going forward or backward by character, and M-f/b
to go forward/backward by word.

The up and down analog, C-p/n to go up/down a line, does not currently
(that I know of) follow this same pattern, where Control is bound to a
single unit of movement and Meta is bound to a larger semantic unit of
movement. Some keys that could substitute for M-p/n are C-v and M-v, for
the equivalent of page up and page down. Binding these, or another
similar set of keys, to M-p/n would follow the behavior of M-f/b and
hopefully make the default key set a bit more intuitive.

Also, C-v and M-v don’t follow the convention of C-A for movement in one
direction, and C-B for movement in the other. Rather, they switch things
up by binding Control to one direction and Meta to the other.

A potential problem here is that it looks like several other modes make
use of M-p/n for browsing through the command history in shells.

Anyways, that’s all for now. I probably underestimate how much effort
such a change would involve, but this might go a small ways towards making
the default command set make more sense, and rely less on rote muscle
memory.

In GNU Emacs 24.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
 of 2012-06-11 on bitzer.hoetzel.info
Windowing system distributor `The X.Org Foundation', version 11.0.11203000
Configured using:
 `configure '--prefix=/usr' '--sysconfdir=/etc' '--libexecdir=/usr/lib'
 '--localstatedir=/var' '--with-x-toolkit=gtk' '--with-xft'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
 --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2'
 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  icomplete-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
a n d SPC r e l y SPC l e s s SPC o n SPC r o t e SPC
m u s c l e SPC m e m o r y . C-p C-p C-p C-l C-p C-l
C-p M-< M-> M-> M-< M-> M-< M-> M-< C-SPC M-> <C-insert>
<down-mouse-1> <mouse-movement> <mouse-1> <S-prior>
<S-next> <up> <up> C-n C-n C-l C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-l C-n C-n C-l C-n C-l
C-n C-n C-l C-n C-n C-n C-l M-> M-< M-> <S-prior> <S-prior>
<S-next> <down-mouse-1> <mouse-movement> <mouse-1>
C-n C-n C-p C-n C-p C-n C-l C-n C-l C-n C-n C-l C-n
C-n C-l C-n C-p C-l C-n C-n C-l C-n C-e C-l C-n C-e
C-l C-a C-e C-n C-e C-l C-n C-p C-p C-n C-n C-n C-l
C-e C-n C-n C-n C-n C-n C-l C-n C-n C-l C-n C-l C-n
C-l C-p C-l C-p C-p C-l C-e C-l <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> C-n C-n C-n C-n C-l C-n
C-n C-l C-n C-n C-l C-x o M-x C-g C-g C-h f f o l l
o w <tab> - m o d <tab> <return> C-n C-n C-p C-p C-l
C-n C-p C-l C-p C-l C-p C-l C-p C-l M-< M-> M-< M->
C-x k <return> C-n C-p C-n C-n C-n C-x o <next> C-x
o C-x b <return> C-x o C-x b s c r a t C-g C-g C-x
b * s c r a t c h * <return> <return> M-x C-g C-g C-h
f r e p o r t <tab> - e m a <tab> <return> C-x o C-n
C-n C-n C-n q n <backspace> C-n C-n M-x r e p o r t
<tab> <return>

Recent messages:
Making completion list...
Type "q" in help window to restore its previous buffer.
byte-code: End of buffer [2 times]
Mark set [4 times]
byte-code: End of buffer [3 times]
scroll-up-command: End of buffer
Quit [4 times]
Making completion list...
Type "q" in help window to restore its previous buffer.
byte-code: End of buffer
byte-code: End of buffer

Load-path shadows:
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-util hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-util
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-jde hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-jde
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-autoloads hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-autoloads
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-mode-line hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-mode-line
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-cedet-wrapper hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-cedet-wrapper
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-analyse hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-analyse
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-navigate hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-navigate
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-compilation hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-compilation
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-eshell hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-eshell
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-tod hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-tod
/home/daniel/.emacs.d/elpa/ecb-2.40/silentcomp hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/silentcomp
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb
/home/daniel/.emacs.d/elpa/ecb-2.40/tree-buffer hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/tree-buffer
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-help hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-help
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-symboldef hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-symboldef
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-winman-support hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-winman-support
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-advice-test hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-advice-test
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-autogen hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-autogen
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-layout hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-layout
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-method-browser hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-method-browser
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-face hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-face
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-compatibility hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-compatibility
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-common-browser hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-common-browser
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-semantic hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-semantic
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-examples hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-examples
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-file-browser hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-file-browser
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-upgrade hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-upgrade
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-layout-defs hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-layout-defs
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-cycle hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-cycle
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-speedbar hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-speedbar
/home/daniel/.emacs.d/elpa/ecb-2.40/ecb-create-layout hides
/home/daniel/.emacs.d/elpa/ecb_snap-20110605/ecb-create-layout

Features:
(shadow sort mail-extr emacsbug message idna rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils mule-util
network-stream auth-source eieio gnus-util mm-util mail-prsvr
password-cache starttls tls erc-menu erc-join erc-ring erc-networks
erc-pcomplete erc-track erc-match erc-button erc-fill erc-stamp
erc-netsplit erc-goodies erc erc-backend erc-compat etags dabbrev
multi-isearch help-mode view yasnippet assoc nxml-uchnm rng-xsd
xsd-regexp rng-cmpct image-mode rng-nxml rng-valid rng-loc rng-uri
rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns
nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok
jka-compr info js json imenu newcomment ruby-mode org-wl org-w3m org-vm
org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html org-exp
ob-exp org-exp-blocks find-func org-agenda org-info org-gnus org-docview
org-bibtex bibtex org-bbdb org ob-emacs-lisp ob-tangle ob-ref ob-lob
ob-table org-footnote org-src ob-comint ob-keys ob ob-eval org-pcomplete
pcomplete org-list org-faces org-compat org-entities org-macs noutline
outline format-spec cal-menu calendar cal-loaddefs dired sgml-mode
sh-script executable vc-git advice advice-preload cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
warnings icomplete browse-kill-ring-autoloads ecb-autoloads
ecb_snap-autoloads magit-autoloads minimap-autoloads yasnippet-autoloads
package tabulated-list w3m-load slime byte-opt bytecomp byte-compile
cconv macroexp derived help-fns easy-mmode pp comint regexp-opt
ansi-color ring hyperspec thingatpt browse-url auto-complete-config
auto-complete edmacro kmacro popup color-theme easymenu wid-edit cl ido
desktop cus-start cus-load time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)
[Message part 2 (text/html, inline)]

Set bug forwarded-to-address to 'http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00303.html'. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Fri, 03 Aug 2012 20:58:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12132; Package emacs. (Fri, 03 Aug 2012 23:35:01 GMT) Full text and rfc822 format available.

Message #10 received at 12132 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Daniel Neel <dneelyep <at> gmail.com>
Cc: 12132 <at> debbugs.gnu.org
Subject: Re: bug#12132: 24.1;
	M-p and M-n should follow behave similarly to M-f and M-b
Date: Fri, 03 Aug 2012 19:26:21 -0400
> My suggestion is to, by default, bind some movement behaviors to the M-p
> and M-n keys. Currently, the default left and right cursor movement keys
> are bound to C-f/b for going forward or backward by character, and M-f/b
> to go forward/backward by word.

Thank you for your suggestion.
I've often wondered what if anything could be bound to M-p, M-n, and
I always ended up with the conclusion that keeping them free for use by
local modes to be the best option.
Maybe it's just laziness on my part, of course.


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12132; Package emacs. (Wed, 30 Oct 2019 23:33:02 GMT) Full text and rfc822 format available.

Message #13 received at 12132 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: 12132 <at> debbugs.gnu.org, Daniel Neel <dneelyep <at> gmail.com>
Subject: Re: bug#12132: 24.1;
 M-p and M-n should follow behave similarly to M-f and M-b
Date: Thu, 31 Oct 2019 00:31:58 +0100
Stefan Monnier <monnier <at> IRO.UMontreal.CA> writes:

>> My suggestion is to, by default, bind some movement behaviors to the M-p
>> and M-n keys. Currently, the default left and right cursor movement keys
>> are bound to C-f/b for going forward or backward by character, and M-f/b
>> to go forward/backward by word.
>
> Thank you for your suggestion.
> I've often wondered what if anything could be bound to M-p, M-n, and
> I always ended up with the conclusion that keeping them free for use by
> local modes to be the best option.
> Maybe it's just laziness on my part, of course.

I think I agree with Stefan Monnier here.  Any objections to closing
this as wontfix?

Best regards,
Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12132; Package emacs. (Thu, 21 Nov 2019 11:49:01 GMT) Full text and rfc822 format available.

Message #16 received at 12132 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: 12132 <at> debbugs.gnu.org, Daniel Neel <dneelyep <at> gmail.com>
Subject: Re: bug#12132: 24.1; M-p and M-n should follow behave similarly to
 M-f and M-b
Date: Thu, 21 Nov 2019 12:48:27 +0100
tags 12132 + notabug wontfix
close 12132
thanks

Stefan Kangas <stefan <at> marxist.se> writes:

> Stefan Monnier <monnier <at> IRO.UMontreal.CA> writes:
>
>>> My suggestion is to, by default, bind some movement behaviors to the M-p
>>> and M-n keys. Currently, the default left and right cursor movement keys
>>> are bound to C-f/b for going forward or backward by character, and M-f/b
>>> to go forward/backward by word.
>>
>> Thank you for your suggestion.
>> I've often wondered what if anything could be bound to M-p, M-n, and
>> I always ended up with the conclusion that keeping them free for use by
>> local modes to be the best option.
>> Maybe it's just laziness on my part, of course.
>
> I think I agree with Stefan Monnier here.  Any objections to closing
> this as wontfix?

No objections within three weeks.  I'm therefore closing this bug.

Best regards,
Stefan Kangas




Added tag(s) wontfix and notabug. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Thu, 21 Nov 2019 11:49:03 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 12132 <at> debbugs.gnu.org and Daniel Neel <dneelyep <at> gmail.com> Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Thu, 21 Nov 2019 11:49:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 19 Dec 2019 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 127 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.