emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: line-move-visual


From: Stephen J. Turnbull
Subject: Re: line-move-visual
Date: Fri, 10 Jul 2009 15:12:23 +0900

Bastien writes:
 > Johan Myréen <address@hidden> writes:

 > > Could somebody please explain to me what the idea behind the new
 > > concept of "visual lines" in Emacs is?

What's new about it?  It's been around for decades, even in Emacs for
a decade or so (long-lines mode). :-)  It's only new as a default.

As Bastien says, here's the long explanation:

 > Take your breath and deep into this discussion:
 > 
 >   http://article.gmane.org/gmane.emacs.devel/101560

 > > Yes, I know the old behaviour can be restored: after some digging
 > > I found out about the line-move-visual variable. Couldn't the
 > > default be nil instead of t?
 > >
 > > Please do not forget what Gnu Emacs stands for: Generally Not
 > > Used, Except by Middle-Aged Computer Scientists.

The "idea" behind this change is to fix that. :-)

 > > With changes like this you risk alienating the few of us that are
 > > left.

Hey!  Not that way!  By attracting a New Generation of users who have
never seen the "carriage" that "carriage return" refers to.  "What,
were typewriters horse-powered?" ;-)

Sure, a lot of us agree that this isn't what we want, at least at
first, but Miles is fairly typical as a long-time user who finds it
"rather convenient".  So in some sense the "right way" to fix this is
not by refusing to change the defaults, but by making newly variable
behaviors like this one more discoverable.  How about a custom group
called "customizations-we-have-recently-introduced", with subgroups of
the form "in-version-XX.YY", and "version-XX.YY" tags for the previous
behavior if different from default?

It also ought to be possible to revert to "classic Emacs" behavior,
for values of "classic" that are user-defined. :-)

The "recently introduced" idea would be trivial to implement.  In
fact, here's an implementation:

(defgroup customizations-we-have-recently-introduced nil
  "A list of customizations introduced recently, by version of Emacs.

Each customization in this group has a value tagged \"classic\" to make it
easy for users to revert to older behavior after trying the new behavior and
deciding they do not like it."
  :version "23.2")

(defgroup introduced-in-version-23.2 nil
  "Customizations introduced in Emacs version 23.2."
  :group 'customizations-we-have-recently-introduced
  :version "23.2")

This implementation is obviously buggy, I seem to have forgotten some
members. :-)  But nevermind, the bugs can be fixed incrementally. :-)

"Reverting to classic Emacs" could be implemented approximately by
providing a toggle that returned all customizations on a page to the
pre-customizability values.  I say "approximately" because (1) it's
not clear that's what the user means by "classic behavior"; there are
probably some "obvious wins", and IMHO *the* classic behavior of Emacs
par excellance is to make it possible to incorporate obvious wins in
your own environment, easily and cleanly.  Reverting those blindly
would be unfortunate.  (2) Some of the new customizations don't have
values that correspond exactly to any "classic" Emacs.  (3) There will
be interactions, and disentangling those probably will require effort
on the part of the programmers of the feature implementations.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]