help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: line-move-visual


From: Uday S Reddy
Subject: Re: line-move-visual
Date: Wed, 08 Dec 2010 15:13:45 -0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4

On 6/14/2010 1:46 AM, Tim X wrote:

Not at all. It was suggested that mature reliable software that is
maintained by competant, mature and experienced programmers /never/
changes its interface. This implies that change is not only unnecessary,
but cannot occur in a mature system.... I reject this assertion that
interfaces cannot change and that any change in an interface
automatically means the software is immature, unreliable and/or
maintained by incompetant developers. I would go further and argue that
in some situations, changing the interface is actually the correct and
responsible thing to do.

Sorry, Tim. Your rejection would carry some weight if you mentioned the situations where changing the interface is "the correct and responsible" thing to do.

You also seem to believe that the `line-move-visual' issue did not present such a situation where changing the interface was the correct and responsible thing to do. So, I am not sure what your point is, other than providing some political support to the developers.

Regarding your questions, yes, I do regard /all/ changes to *existing* behavior of mature software systems as bad. Under exceptional circumstances, they could be the *lesser evil* and then we accept them as being unfortunately necessary.

This does not mean that you can't add new features or extend the existing behavior. Extend it as much as you please, without changing what already exists.

The Emacs NEWS file currently does not make any distinction between *changes*, meaning changes to the existing behavior, and *extensions* (or improvements or new features). All of them are generically labelled as "Changes" (meaning changes to the software system, not changes to the behavior of features). This is probably a hangover from the time when the file might have been called a ChangeLog, rather than NEWS. Please don't confuse "changes" in this generic sense to be actual changes.

That isn't how I interpreted Stefan's response at all. My interpretation
was that he believes, based on feedback, that many users found visual
line mode a beneficial new feature, but he acknowledges that it hasn't
come without some problems.

I don't understand why you are asking if C-n should move by logical line
or visual line in logical line mode. Isn't this what the difference is
between the two modes? In logical line mode, the behavior is exactly the
same as it has always been - C-n moves by logical line. In visual line
mode, it moves by visual line. I don't see any issue here and there is
no evidence anywhere that I am aware of that proposes any changes to
line movement when not in visual line mode.

These two paragraphs suggest that you don't really know what the issue is. Perhaps you should read the manual sections on line-move-visual and visual-line-mode and try them out before discussing them?

line-move-visual is a custom option, which controls whether C-n moves by logical line or visual line. visual-line-mode is a minor mode where an integrated set of features is presented to work with text in terms of visual lines. This mode sets line-move-visual among others. /Nobody/ has ever complained about visual-line-mode. So, you should go back and re-read your messages and rethink every instance of "visual-line-mode" that you have used. (I thought you were just mis-writing it. Didn't realize that you were mis-meaning it.)

The issue is that, *outside* of visual-line-mode (which I am calling "logical line mode"), C-n moves by visual line! For the last 30 years, it moved by logical line. This is a fundamental change to the meaning of a bread-and-butter operation of Emacs. It is /not/ a change of just a key binding. It is a redefinition of the "next-line" function. So, wherever any body has used "next-line" in an elisp code or keyboard macro, the meaning has changed. Almost all such elisp functions and keyboard macros now break. If you are using your own code or macro, you will eat your salt and set line-move-visual to nil, which will reinstate the old behavior. If you have given your code or macro to other people, you need to go in a hurry and tell them to set /their/ line-move-visual to nil. Otherwise, you will end up corrupting /their/ files.

I hope you understand the issue better now. If you still think this is an acceptable change, let us know.

Cheers,
Uday


reply via email to

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