unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* line-move-visual never set to nil?
@ 2008-07-26 17:43 T. V. Raman
  2008-07-26 18:13 ` Stefan Monnier
  2008-07-26 18:57 ` Chong Yidong
  0 siblings, 2 replies; 47+ messages in thread
From: T. V. Raman @ 2008-07-26 17:43 UTC (permalink / raw)
  To: emacs-devel

I'm very confused by the code in simple.el.

As reported a few minutes ago, turning off visual-line-mode has
no effect. The apparent reason being: line-move-visual remains
set to T and that is what the code in functions next-line and
previous-line refers to.

Is this a naming bug i.e. with the minor mode now called
visual-line-mode, should the variable be named visual-line-move
-- rather than line-move-visual?

Looking at the code that defines visual-line-mode -- I dont see
the line-move-visual getting set at any point; also, I see a
command to turn-on-visual-line-mode -- but no corresponding
command to turn it off.

Setting line-move-visual to nil does return emacs to its
traditional behavior where next-line and previous-line move
across   physical lines.

-- 
Best Regards,
--raman

      
Email:  raman@users.sf.net
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@gmail.com
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 
IRC:    irc://irc.freenode.net/#emacs




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 17:43 line-move-visual never set to nil? T. V. Raman
@ 2008-07-26 18:13 ` Stefan Monnier
  2008-07-26 18:40   ` Vinicius Jose Latorre
  2008-07-26 18:48   ` David Reitter
  2008-07-26 18:57 ` Chong Yidong
  1 sibling, 2 replies; 47+ messages in thread
From: Stefan Monnier @ 2008-07-26 18:13 UTC (permalink / raw)
  To: raman; +Cc: emacs-devel

> Looking at the code that defines visual-line-mode -- I dont see
> the line-move-visual getting set at any point; also, I see a
> command to turn-on-visual-line-mode -- but no corresponding
> command to turn it off.

Yes, could someone remove turn-on-visual-line-mode?
The command to turn it ON is the same as the one to turn it OFF,
i.e. `visual-line-mode'.


        Stefan




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 18:13 ` Stefan Monnier
@ 2008-07-26 18:40   ` Vinicius Jose Latorre
  2008-07-26 18:44     ` Stefan Monnier
  2008-07-26 18:48   ` David Reitter
  1 sibling, 1 reply; 47+ messages in thread
From: Vinicius Jose Latorre @ 2008-07-26 18:40 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: raman, emacs-devel

Stefan Monnier wrote:
>> Looking at the code that defines visual-line-mode -- I dont see
>> the line-move-visual getting set at any point; also, I see a
>> command to turn-on-visual-line-mode -- but no corresponding
>> command to turn it off.
>>     
>
> Yes, could someone remove turn-on-visual-line-mode?
> The command to turn it ON is the same as the one to turn it OFF,
> i.e. `visual-line-mode'.
>   

The turn-on-visual-line-mode is an auxiliary function used by 
global-visual-line-mode.

 From simple.el:

(defun turn-on-visual-line-mode ()
  (visual-line-mode 1))

(define-globalized-minor-mode global-visual-line-mode
  visual-line-mode turn-on-visual-line-mode
  :lighter " vl")





^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 18:40   ` Vinicius Jose Latorre
@ 2008-07-26 18:44     ` Stefan Monnier
  0 siblings, 0 replies; 47+ messages in thread
From: Stefan Monnier @ 2008-07-26 18:44 UTC (permalink / raw)
  To: Vinicius Jose Latorre; +Cc: raman, emacs-devel

>>> Looking at the code that defines visual-line-mode -- I dont see
>>> the line-move-visual getting set at any point; also, I see a
>>> command to turn-on-visual-line-mode -- but no corresponding
>>> command to turn it off.
>> Yes, could someone remove turn-on-visual-line-mode?
>> The command to turn it ON is the same as the one to turn it OFF,
>> i.e. `visual-line-mode'.
> The turn-on-visual-line-mode is an auxiliary function used by
> global-visual-line-mode.

Oh, so it's not a command, but just a function.  I guess it can stay.


        Stefan




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 18:13 ` Stefan Monnier
  2008-07-26 18:40   ` Vinicius Jose Latorre
@ 2008-07-26 18:48   ` David Reitter
  1 sibling, 0 replies; 47+ messages in thread
From: David Reitter @ 2008-07-26 18:48 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: raman, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 303 bytes --]

On 26 Jul 2008, at 14:13, Stefan Monnier wrote:
> Yes, could someone remove turn-on-visual-line-mode?
> The command to turn it ON is the same as the one to turn it OFF,
> i.e. `visual-line-mode'.

Isn't that a convenience function for people to put in hooks?
(...which is nicer than a lambda expression)

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 17:43 line-move-visual never set to nil? T. V. Raman
  2008-07-26 18:13 ` Stefan Monnier
@ 2008-07-26 18:57 ` Chong Yidong
  2008-07-26 19:38   ` T. V. Raman
  2008-07-27 18:46   ` David Reitter
  1 sibling, 2 replies; 47+ messages in thread
From: Chong Yidong @ 2008-07-26 18:57 UTC (permalink / raw)
  To: raman; +Cc: emacs-devel

"T. V. Raman" <raman@users.sourceforge.net> writes:

> As reported a few minutes ago, turning off visual-line-mode has
> no effect. The apparent reason being: line-move-visual remains
> set to T and that is what the code in functions next-line and
> previous-line refers to.

Now, line-move-visual is a defcustom.  The question is, whether it
should default to nil or t (even when visual-line-mode is off).  The
current default is t, which is a kind of hybrid model where line-move
uses screen lines but other editing commands use logical lines.

Like Stefan and others, I've found that this setting works pretty well
in practice, for buffers in which there are occasional continued lines.
(When the buffer is full of long lines, turning on visual-line-mode is
more appropriate.)

It's true, though, that this behavior could be confusing, especially for
longtime users of Emacs.  So maybe we ought to make line-move-visual
default to nil, as before, and leave it to advanced users to change it
to t for their own usage.

What's the opinion of others on this list?




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 18:57 ` Chong Yidong
@ 2008-07-26 19:38   ` T. V. Raman
  2008-07-26 19:41     ` Chong Yidong
  2008-07-27 18:46   ` David Reitter
  1 sibling, 1 reply; 47+ messages in thread
From: T. V. Raman @ 2008-07-26 19:38 UTC (permalink / raw)
  To: cyd; +Cc: emacs-devel, raman

I think line-move-visual should start off set consistent with
visual-line-mode. I also think it should be renamed to match with
visual-line-mode -- ie visual-line-move -- not line-move-visual
--- otherwise users will never be able to discover and set it.

>>>>> "Chong" == Chong Yidong <cyd@stupidchicken.com> writes:
    Chong> "T. V. Raman" <raman@users.sourceforge.net> writes:
    >> As reported a few minutes ago, turning off
    >> visual-line-mode has no effect. The apparent reason being:
    >> line-move-visual remains set to T and that is what the
    >> code in functions next-line and previous-line refers to.
    Chong> 
    Chong> Now, line-move-visual is a defcustom.  The question
    Chong> is, whether it should default to nil or t (even when
    Chong> visual-line-mode is off).  The current default is t,
    Chong> which is a kind of hybrid model where line-move uses
    Chong> screen lines but other editing commands use logical
    Chong> lines.
    Chong> 
    Chong> Like Stefan and others, I've found that this setting
    Chong> works pretty well in practice, for buffers in which
    Chong> there are occasional continued lines.  (When the
    Chong> buffer is full of long lines, turning on
    Chong> visual-line-mode is more appropriate.)
    Chong> 
    Chong> It's true, though, that this behavior could be
    Chong> confusing, especially for longtime users of Emacs.  So
    Chong> maybe we ought to make line-move-visual default to
    Chong> nil, as before, and leave it to advanced users to
    Chong> change it to t for their own usage.
    Chong> 
    Chong> What's the opinion of others on this list?
    Chong> 

-- 
Best Regards,
--raman

      
Email:  raman@users.sf.net
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@gmail.com
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 
IRC:    irc://irc.freenode.net/#emacs




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 19:38   ` T. V. Raman
@ 2008-07-26 19:41     ` Chong Yidong
  0 siblings, 0 replies; 47+ messages in thread
From: Chong Yidong @ 2008-07-26 19:41 UTC (permalink / raw)
  To: raman; +Cc: emacs-devel

"T. V. Raman" <raman@users.sourceforge.net> writes:

> I think line-move-visual should start off set consistent with
> visual-line-mode. I also think it should be renamed to match with
> visual-line-mode -- ie visual-line-move -- not line-move-visual ---
> otherwise users will never be able to discover and set it.

But line-move-visual (and word-wrap) can be turned on independently;
visual-line-mode simply goes a step further and rebinds some editing
keys in addition to setting line-move-visual and word-wrap.

How about renaming line-move-visual to line-move-by-screen-lines?




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-26 18:57 ` Chong Yidong
  2008-07-26 19:38   ` T. V. Raman
@ 2008-07-27 18:46   ` David Reitter
  2008-07-27 20:59     ` Stefan Monnier
  1 sibling, 1 reply; 47+ messages in thread
From: David Reitter @ 2008-07-27 18:46 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel, raman

[-- Attachment #1: Type: text/plain, Size: 497 bytes --]

On 26 Jul 2008, at 14:57, Chong Yidong wrote:
>
> It's true, though, that this behavior could be confusing, especially  
> for
> longtime users of Emacs.  So maybe we ought to make line-move-visual
> default to nil, as before, and leave it to advanced users to change it
> to t for their own usage.

Especially novice users will be confused by this defaulting to nil.

More advanced users can customize or simply stick to an older version  
if they quite generally don't appreciate improvements.


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-27 18:46   ` David Reitter
@ 2008-07-27 20:59     ` Stefan Monnier
  2008-07-27 21:08       ` Stefan Monnier
  2008-07-29  7:43       ` Andrew W. Nosenko
  0 siblings, 2 replies; 47+ messages in thread
From: Stefan Monnier @ 2008-07-27 20:59 UTC (permalink / raw)
  To: David Reitter; +Cc: Chong Yidong, raman, emacs-devel

>> It's true, though, that this behavior could be confusing, especially for
>> longtime users of Emacs.  So maybe we ought to make line-move-visual
>> default to nil, as before, and leave it to advanced users to change it
>> to t for their own usage.

That's not my experience.  line-move has been doing "funny" things for
a while now and nobody really complained about it (all the complaints
I've seen were of the other sort, which were pushing towards what we
now have when we set line-move-visual to t).

> Especially novice users will be confused by this defaulting to nil.

We shouldn't place special emphasis on novices, but I think that it's
generally a better default, indeed.  As a matter of fact, the OP's
reuqest wasn't really complaining about this default, but about the fact
that he expected visual-line-mode to affect it.  Maybe the docstring
should refer to line-move-visual to clear the confusion.


        Stefan




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-27 20:59     ` Stefan Monnier
@ 2008-07-27 21:08       ` Stefan Monnier
  2008-07-28  0:23         ` T. V. Raman
  2008-07-29  7:43       ` Andrew W. Nosenko
  1 sibling, 1 reply; 47+ messages in thread
From: Stefan Monnier @ 2008-07-27 21:08 UTC (permalink / raw)
  To: David Reitter; +Cc: Chong Yidong, raman, emacs-devel

>> Especially novice users will be confused by this defaulting to nil.
> We shouldn't place special emphasis on novices, but I think that it's
> generally a better default, indeed.  As a matter of fact, the OP's
> request wasn't really complaining about this default, but about the fact
> that he expected visual-line-mode to affect it.  Maybe the docstring
> should refer to line-move-visual to clear the confusion.

Another solution is to merge the two variables into a single 3-state option.
That would clear up the confusion much more effectively.


        Stefan




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-27 21:08       ` Stefan Monnier
@ 2008-07-28  0:23         ` T. V. Raman
  0 siblings, 0 replies; 47+ messages in thread
From: T. V. Raman @ 2008-07-28  0:23 UTC (permalink / raw)
  To: monnier; +Cc: david.reitter, cyd, raman, emacs-devel

I like  the idea of a three way option --- that brings together
all the bits into a single location for customization and documentation.

>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:
    >>> Especially novice users will be confused by this
    >>> defaulting to nil.
    >> We shouldn't place special emphasis on novices, but I
    >> think that it's generally a better default, indeed.  As a
    >> matter of fact, the OP's request wasn't really complaining
    >> about this default, but about the fact that he expected
    >> visual-line-mode to affect it.  Maybe the docstring should
    >> refer to line-move-visual to clear the confusion.
    Stefan> 
    Stefan> Another solution is to merge the two variables into a
    Stefan> single 3-state option.  That would clear up the
    Stefan> confusion much more effectively.
    Stefan> 
    Stefan> 
    Stefan>         Stefan

-- 
Best Regards,
--raman

      
Email:  raman@users.sf.net
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@gmail.com
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 
IRC:    irc://irc.freenode.net/#emacs




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-27 20:59     ` Stefan Monnier
  2008-07-27 21:08       ` Stefan Monnier
@ 2008-07-29  7:43       ` Andrew W. Nosenko
  2008-07-29 14:34         ` Chong Yidong
  1 sibling, 1 reply; 47+ messages in thread
From: Andrew W. Nosenko @ 2008-07-29  7:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: David Reitter, Chong Yidong, emacs-devel, raman

On Sun, Jul 27, 2008 at 11:59 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>>> It's true, though, that this behavior could be confusing, especially for
>>> longtime users of Emacs.  So maybe we ought to make line-move-visual
>>> default to nil, as before, and leave it to advanced users to change it
>>> to t for their own usage.
>
> That's not my experience.  line-move has been doing "funny" things for
> a while now and nobody really complained about it (all the complaints
> I've seen were of the other sort, which were pushing towards what we
> now have when we set line-move-visual to t).

Just because either too lazy (like me) and hope that usual behavior
will be restored after trying and playing fith this feature, or just
don't know (because not so many people use CVS emacs), or in hope that
some convenient workaround will be made for achieve the best of two
sides.

The biggest problem with "visual" line motion as it is currently is
even not in the need of re-learning.  The biggest is that current
defaults are beaks keybord macro.  Just try to record some macro that
uses up/down key having wrapped lines, change width of the
window/frame and enjoy. :-(

Introducing of the commands for movement over phisical lines (as
proposed for M-[ and M-], or where they will be bound finally) could
help, but...  But they are available only for word-wrapping mode,
while up/down keys behavior "screwed" in all modes :-(

Sorry, may be indeed wes too lazy and this message should be written
early, but better do it latter than never...

-- 
Andrew W. Nosenko <andrew.w.nosenko@gmail.com>




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29  7:43       ` Andrew W. Nosenko
@ 2008-07-29 14:34         ` Chong Yidong
  2008-07-29 14:43           ` Lennart Borgman
                             ` (2 more replies)
  0 siblings, 3 replies; 47+ messages in thread
From: Chong Yidong @ 2008-07-29 14:34 UTC (permalink / raw)
  To: Andrew W. Nosenko; +Cc: David Reitter, emacs-devel, Stefan Monnier, raman

"Andrew W. Nosenko" <andrew.w.nosenko@gmail.com> writes:

> The biggest problem with "visual" line motion ...  is that current
> defaults are beaks keybord macro.  Just try to record some macro that
> uses up/down key having wrapped lines, change width of the
> window/frame and enjoy. :-(

That's a good point.  That's also why line-move doesn't try to scroll
tall images when executing a keyboard macro.  Maybe line-move-visual
needs the same treatment, like in the following patch.  WDYT?

*** trunk/lisp/simple.el.~1.939.~	2008-07-28 10:55:05.000000000 -0400
--- trunk/lisp/simple.el	2008-07-29 10:32:51.000000000 -0400
***************
*** 3978,3994 ****
  ;; a cleaner solution to the problem of making C-n do something
  ;; useful given a tall image.
  (defun line-move (arg &optional noerror to-end try-vscroll)
!   (unless (and auto-window-vscroll try-vscroll
! 	       ;; Only vscroll for single line moves
! 	       (= (abs arg) 1)
! 	       ;; But don't vscroll in a keyboard macro.
! 	       (not defining-kbd-macro)
! 	       (not executing-kbd-macro)
! 	       (line-move-partial arg noerror to-end))
!     (set-window-vscroll nil 0 t)
!     (if line-move-visual
! 	(line-move-visual arg noerror)
!       (line-move-1 arg noerror to-end))))
  
  ;; Display-based alternative to line-move-1.
  ;; Arg says how many lines to move.  The value is t if we can move the
--- 3978,3996 ----
  ;; a cleaner solution to the problem of making C-n do something
  ;; useful given a tall image.
  (defun line-move (arg &optional noerror to-end try-vscroll)
!   (if (or defining-kbd-macro executing-kbd-macro)
!       ;; If inside a keyboard macro, don't vscroll and don't move by
!       ;; screen lines.
!       (progn (set-window-vscroll nil 0 t)
! 	     (line-move-1 arg noerror to-end))
!     ;; Otherwise, only vscroll for single line moves
!     (unless (and auto-window-vscroll try-vscroll
! 		 (= (abs arg) 1)
! 		 (line-move-partial arg noerror to-end))
!       (set-window-vscroll nil 0 t)
!       (if line-move-visual
! 	  (line-move-visual arg noerror)
! 	(line-move-1 arg noerror to-end)))))
  
  ;; Display-based alternative to line-move-1.
  ;; Arg says how many lines to move.  The value is t if we can move the




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 14:34         ` Chong Yidong
@ 2008-07-29 14:43           ` Lennart Borgman
  2008-07-29 16:27           ` Stefan Monnier
  2008-07-30  3:46           ` Richard M Stallman
  2 siblings, 0 replies; 47+ messages in thread
From: Lennart Borgman @ 2008-07-29 14:43 UTC (permalink / raw)
  To: Chong Yidong
  Cc: David Reitter, raman, Stefan Monnier, Andrew W. Nosenko,
	emacs-devel

[-- Attachment #1: Type: text/plain, Size: 710 bytes --]

On 7/29/08, Chong Yidong <cyd@stupidchicken.com> wrote:
>
> "Andrew W. Nosenko" <andrew.w.nosenko@gmail.com> writes:
>
> > The biggest problem with "visual" line motion ...  is that current
> > defaults are beaks keybord macro.  Just try to record some macro that
> > uses up/down key having wrapped lines, change width of the
> > window/frame and enjoy. :-(
>
> That's a good point.  That's also why line-move doesn't try to scroll
> tall images when executing a keyboard macro.  Maybe line-move-visual
> needs the same treatment, like in the following patch.  WDYT?


I do not understand what you mean here. Would not the easiest thing be to
turn off visual line moving during macro recording and execution?

[-- Attachment #2: Type: text/html, Size: 1157 bytes --]

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 14:34         ` Chong Yidong
  2008-07-29 14:43           ` Lennart Borgman
@ 2008-07-29 16:27           ` Stefan Monnier
  2008-07-29 18:31             ` Chong Yidong
  2008-07-30  3:46           ` Richard M Stallman
  2 siblings, 1 reply; 47+ messages in thread
From: Stefan Monnier @ 2008-07-29 16:27 UTC (permalink / raw)
  To: Chong Yidong; +Cc: David Reitter, emacs-devel, Andrew W. Nosenko, raman

>> The biggest problem with "visual" line motion ...  is that current
>> defaults are beaks keybord macro.  Just try to record some macro that
>> uses up/down key having wrapped lines, change width of the
>> window/frame and enjoy. :-(

Indeed, it sounds like a problem.

> That's a good point.  That's also why line-move doesn't try to scroll
> tall images when executing a keyboard macro.  Maybe line-move-visual
> needs the same treatment, like in the following patch.  WDYT?

It's probably a good idea, although it's kind of ugly.


        Stefan




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 16:27           ` Stefan Monnier
@ 2008-07-29 18:31             ` Chong Yidong
  2008-07-29 18:37               ` David Reitter
  0 siblings, 1 reply; 47+ messages in thread
From: Chong Yidong @ 2008-07-29 18:31 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: David Reitter, emacs-devel, Andrew W. Nosenko, raman

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> That's a good point.  That's also why line-move doesn't try to scroll
>> tall images when executing a keyboard macro.  Maybe line-move-visual
>> needs the same treatment, like in the following patch.  WDYT?
>
> It's probably a good idea, although it's kind of ugly.

Yeah.  Maybe it's better to return to the previous default.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 18:31             ` Chong Yidong
@ 2008-07-29 18:37               ` David Reitter
  2008-07-29 19:18                 ` Chong Yidong
  2008-07-30  0:31                 ` Miles Bader
  0 siblings, 2 replies; 47+ messages in thread
From: David Reitter @ 2008-07-29 18:37 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel, Stefan Monnier, Andrew W. Nosenko, raman

[-- Attachment #1: Type: text/plain, Size: 319 bytes --]

On 29 Jul 2008, at 19:31, Chong Yidong wrote:
>
> Yeah.  Maybe it's better to return to the previous default.

How about new functions for the visual movement, and binding the arrow  
keys to that?
There could be a mode to bind the keys, and this mode could default to  
on.

Would that be compatible with old macros?


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 18:37               ` David Reitter
@ 2008-07-29 19:18                 ` Chong Yidong
  2008-07-29 19:23                   ` Lennart Borgman (gmail)
  2008-07-29 21:23                   ` David De La Harpe Golden
  2008-07-30  0:31                 ` Miles Bader
  1 sibling, 2 replies; 47+ messages in thread
From: Chong Yidong @ 2008-07-29 19:18 UTC (permalink / raw)
  To: David Reitter; +Cc: emacs-devel, Stefan Monnier, Andrew W. Nosenko, raman

David Reitter <david.reitter@gmail.com> writes:

> How about new functions for the visual movement, and binding the arrow
> keys to that?

No, we shouldn't make C-n and down do different things.  That would be
bad.

I don't think there's a completely satisfactory way to allow both visual
line movement and keyboard macro friendliness by default.  If we don't
revert to the old default, we may just have to live with this conflict.

We could advise people to temporarily turn on truncate-lines if they
want to handle long lines with keyboard macros.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 19:18                 ` Chong Yidong
@ 2008-07-29 19:23                   ` Lennart Borgman (gmail)
  2008-07-29 19:59                     ` Stefan Monnier
  2008-07-29 21:23                   ` David De La Harpe Golden
  1 sibling, 1 reply; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-07-29 19:23 UTC (permalink / raw)
  To: Chong Yidong
  Cc: David Reitter, raman, Stefan Monnier, Andrew W. Nosenko,
	emacs-devel

Chong Yidong wrote:
> David Reitter <david.reitter@gmail.com> writes:
> 
>> How about new functions for the visual movement, and binding the arrow
>> keys to that?
> 
> No, we shouldn't make C-n and down do different things.  That would be
> bad.
> 
> I don't think there's a completely satisfactory way to allow both visual
> line movement and keyboard macro friendliness by default.  If we don't
> revert to the old default, we may just have to live with this conflict.
> 
> We could advise people to temporarily turn on truncate-lines if they
> want to handle long lines with keyboard macros.

Why not do that for them? Or something equivalent.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 19:23                   ` Lennart Borgman (gmail)
@ 2008-07-29 19:59                     ` Stefan Monnier
  0 siblings, 0 replies; 47+ messages in thread
From: Stefan Monnier @ 2008-07-29 19:59 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: David Reitter, Chong Yidong, raman, Andrew W. Nosenko,
	emacs-devel

>> We could advise people to temporarily turn on truncate-lines if they
>> want to handle long lines with keyboard macros.

> Why not do that for them? Or something equivalent.

That's basically what his patch was doing (tho in a different way),


        Stefan




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 19:18                 ` Chong Yidong
  2008-07-29 19:23                   ` Lennart Borgman (gmail)
@ 2008-07-29 21:23                   ` David De La Harpe Golden
  1 sibling, 0 replies; 47+ messages in thread
From: David De La Harpe Golden @ 2008-07-29 21:23 UTC (permalink / raw)
  To: Chong Yidong
  Cc: David Reitter, raman, Stefan Monnier, Andrew W. Nosenko,
	emacs-devel

Chong Yidong wrote:
> David Reitter <david.reitter@gmail.com> writes:
> 
>> How about new functions for the visual movement, and binding the arrow
>> keys to that?
> 
> No, we shouldn't make C-n and down do different things.  That would be
> bad.
> 

How about making new functions for the visual movement, and binding
different keys to _them_ :

Since visual line movement is occasionally useful, but nonsurprising
keyboard macros probably more important for my usual use of emacs,
I was vaguely considering doing that locally, effectively - leaving
line-move-visual on, BUT binding up/down and  C-n/p
to next/previous-logical-line, and putting the (visual)
next/previous-line on M-up/down (yes perhaps trouble on some terminals,
but my terminal seems to handle it okay)

But if next/previous-line were what next/previous-logical-line currently
are, and next/previous-visual-line were introduced to be what
next/previous-line currently are, I'd probably prefer that. Slightly
less surprising than having to use next/prev-logical-line where
next/previous-line used to suffice.







^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 18:37               ` David Reitter
  2008-07-29 19:18                 ` Chong Yidong
@ 2008-07-30  0:31                 ` Miles Bader
  2008-07-30  0:42                   ` David Reitter
  1 sibling, 1 reply; 47+ messages in thread
From: Miles Bader @ 2008-07-30  0:31 UTC (permalink / raw)
  To: David Reitter
  Cc: Chong Yidong, raman, Stefan Monnier, Andrew W. Nosenko,
	emacs-devel

David Reitter <david.reitter@gmail.com> writes:
> How about new functions for the visual movement, and binding the arrow
> keys to that?  There could be a mode to bind the keys, and this mode
> could default to on.

No.

The arrow keys should _not_ be "special".

-MIles

-- 
Somebody has to do something, and it's just incredibly pathetic that it
has to be us.  -- Jerry Garcia




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-30  0:31                 ` Miles Bader
@ 2008-07-30  0:42                   ` David Reitter
  0 siblings, 0 replies; 47+ messages in thread
From: David Reitter @ 2008-07-30  0:42 UTC (permalink / raw)
  To: Miles Bader
  Cc: Chong Yidong, raman, Stefan Monnier, Andrew W. Nosenko,
	emacs-devel

[-- Attachment #1: Type: text/plain, Size: 665 bytes --]

On 30 Jul 2008, at 01:31, Miles Bader wrote:

> David Reitter <david.reitter@gmail.com> writes:
>> How about new functions for the visual movement, and binding the  
>> arrow
>> keys to that?  There could be a mode to bind the keys, and this mode
>> could default to on.
>
> No.
>
> The arrow keys should _not_ be "special".

I've been misunderstood.  I also meant to bind C-n/C-p to the new  
functions.

But if keyboard macros don't record the invoked functions, but key  
presses, then that won't help of course.
This is only about backwards compatibility!

If a user records a new macro using movement keys, then they should  
get the new behavior, of course...

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-29 14:34         ` Chong Yidong
  2008-07-29 14:43           ` Lennart Borgman
  2008-07-29 16:27           ` Stefan Monnier
@ 2008-07-30  3:46           ` Richard M Stallman
  2008-07-30  4:43             ` Chong Yidong
  2008-07-31 17:24             ` Lennart Borgman (gmail)
  2 siblings, 2 replies; 47+ messages in thread
From: Richard M Stallman @ 2008-07-30  3:46 UTC (permalink / raw)
  To: Chong Yidong; +Cc: david.reitter, raman, monnier, andrew.w.nosenko, emacs-devel

If a command normally moves by screen lines, making it do something
different in a keyboard macro is incorrect.

Why doesn't it work right in a keyboard macro?
Is this because it uses data structures that are updated
only by redisplay, and the keyboard macro does not redisplay?

If that is the cause, these functions also are no use for other Lisp
programs to call.  Even when the user types commands by hand, Emacs
may not redisplay if the machine falls behind.  Using those facilities
is the wrong implementation for these commands.

The right solution is to implement the TODO item of functions similar
to compute-motion, vertical-motion, and current-column, which take
account of the width and height of characters and operate on positions
expressed in floating point.  These functions should look only at the
buffer contents and the fonts, so they work regardless of whether
the text has been displayed lately.

If you implement these commands based on those functions, they will
work reliably no matter where they are called from.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-30  3:46           ` Richard M Stallman
@ 2008-07-30  4:43             ` Chong Yidong
  2008-07-30  4:56               ` Miles Bader
  2008-07-30  7:59               ` Lennart Borgman (gmail)
  2008-07-31 17:24             ` Lennart Borgman (gmail)
  1 sibling, 2 replies; 47+ messages in thread
From: Chong Yidong @ 2008-07-30  4:43 UTC (permalink / raw)
  To: rms; +Cc: david.reitter, raman, monnier, andrew.w.nosenko, emacs-devel

Richard M Stallman <rms@gnu.org> writes:

> If a command normally moves by screen lines, making it do something
> different in a keyboard macro is incorrect.

Yeah, I'm not crazy about the idea either.

> Why doesn't it work right in a keyboard macro?
> Is this because it uses data structures that are updated
> only by redisplay, and the keyboard macro does not redisplay?

No, it's because keyboard macros recorded using one window width may not
work properly when you change the window width, if the line wrapping has
changed.

After thinking about this more, I think we might leave this alone.  It's
not difficult to do M-x toggle-truncate-lines if you need to avoid this
problem, if it ever crops up.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-30  4:43             ` Chong Yidong
@ 2008-07-30  4:56               ` Miles Bader
  2008-07-30  7:59               ` Lennart Borgman (gmail)
  1 sibling, 0 replies; 47+ messages in thread
From: Miles Bader @ 2008-07-30  4:56 UTC (permalink / raw)
  To: Chong Yidong
  Cc: rms, david.reitter, andrew.w.nosenko, emacs-devel, monnier, raman

Chong Yidong <cyd@stupidchicken.com> writes:
>> Why doesn't it work right in a keyboard macro?
>
> No, it's because keyboard macros recorded using one window width may not
> work properly when you change the window width, if the line wrapping has
> changed.
>
> After thinking about this more, I think we might leave this alone.  It's
> not difficult to do M-x toggle-truncate-lines if you need to avoid this
> problem, if it ever crops up.

I agree.

The fundamental problem is one that has always been present when
entering keyboard macros:  You need to be slightly careful and consider
possible ways that your commands might work differently in a different
context.  Often this means using different, more robust or more
primitive commands than you might use interactively.

I don't think line-move-visual changes much.

-Miles

-- 
Electricity, n. The cause of all natural phenomena not known to be caused by
something else.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-30  4:43             ` Chong Yidong
  2008-07-30  4:56               ` Miles Bader
@ 2008-07-30  7:59               ` Lennart Borgman (gmail)
  1 sibling, 0 replies; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-07-30  7:59 UTC (permalink / raw)
  To: Chong Yidong
  Cc: rms, david.reitter, andrew.w.nosenko, emacs-devel, monnier, raman

Chong Yidong wrote:
>> Why doesn't it work right in a keyboard macro?
>> Is this because it uses data structures that are updated
>> only by redisplay, and the keyboard macro does not redisplay?
> 
> No, it's because keyboard macros recorded using one window width may not
> work properly when you change the window width, if the line wrapping has
> changed.
> 
> After thinking about this more, I think we might leave this alone.  It's
> not difficult to do M-x toggle-truncate-lines if you need to avoid this
> problem, if it ever crops up.


But this is a fundamental and known problem with keyboard macros and 
line-move-visual. As I said before: Why not turn on line-move-visual 
during keyboard recording and replaying?

I thought Stefan responded earlier (thanks) that this was what a 
proposed patch did. It looks like I am misunderstanding something. Could 
someone explain?




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-30  3:46           ` Richard M Stallman
  2008-07-30  4:43             ` Chong Yidong
@ 2008-07-31 17:24             ` Lennart Borgman (gmail)
  2008-07-31 23:34               ` Miles Bader
  2008-08-01  4:43               ` Richard M Stallman
  1 sibling, 2 replies; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-07-31 17:24 UTC (permalink / raw)
  To: rms
  Cc: david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman

Richard M Stallman wrote:
> If a command normally moves by screen lines, making it do something
> different in a keyboard macro is incorrect.


Wouldn't it be more correct to say that the requirement is that during 
execution of the macro the command should do the same thing to the 
buffer as during recording of the macro?

This mean that if for example the command changes point then this change 
must be independent of the window size.

My conclusion is that commands that changes something in the buffer and 
depends on window size must behave differently when used with macros. In 
that case they must not be depend on the window size.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-31 17:24             ` Lennart Borgman (gmail)
@ 2008-07-31 23:34               ` Miles Bader
  2008-07-31 23:38                 ` Lennart Borgman (gmail)
  2008-08-01  4:43               ` Richard M Stallman
  1 sibling, 1 reply; 47+ messages in thread
From: Miles Bader @ 2008-07-31 23:34 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman

"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>> If a command normally moves by screen lines, making it do something
>> different in a keyboard macro is incorrect.
>
> Wouldn't it be more correct to say that the requirement is that during
> execution of the macro the command should do the same thing to the
> buffer as during recording of the macro?
>
> This mean that if for example the command changes point then this change
> must be independent of the window size.

Macros do not -- and cannot -- make any guarantees about what happens if
you execute them in a different environment, or on different text, than
where they were recorded.

-Miles

-- 
Once, adj. Enough.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-31 23:34               ` Miles Bader
@ 2008-07-31 23:38                 ` Lennart Borgman (gmail)
  2008-08-01  0:25                   ` David De La Harpe Golden
  2008-08-01  0:33                   ` Miles Bader
  0 siblings, 2 replies; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-07-31 23:38 UTC (permalink / raw)
  To: Miles Bader
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman

Miles Bader wrote:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>>> If a command normally moves by screen lines, making it do something
>>> different in a keyboard macro is incorrect.
>> Wouldn't it be more correct to say that the requirement is that during
>> execution of the macro the command should do the same thing to the
>> buffer as during recording of the macro?
>>
>> This mean that if for example the command changes point then this change
>> must be independent of the window size.
> 
> Macros do not -- and cannot -- make any guarantees about what happens if
> you execute them in a different environment, or on different text, than
> where they were recorded.


Do you mean that there is something that prevents us from temporary 
turning things off during keyboard macro recording and execution? In 
that case: what?




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-31 23:38                 ` Lennart Borgman (gmail)
@ 2008-08-01  0:25                   ` David De La Harpe Golden
  2008-08-01  0:27                     ` David De La Harpe Golden
  2008-08-01  0:29                     ` Lennart Borgman (gmail)
  2008-08-01  0:33                   ` Miles Bader
  1 sibling, 2 replies; 47+ messages in thread
From: David De La Harpe Golden @ 2008-08-01  0:25 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman, Miles Bader

Lennart Borgman (gmail) wrote
>> Macros do not -- and cannot -- make any guarantees about what happens if
>> you execute them in a different environment, or on different text, than
>> where they were recorded.
> 
> 
> Do you mean that there is something that prevents us from temporary
> turning things off during keyboard macro recording and execution? In
> that case: what?
> 

It'd be annoying?

It would break similarity between keyboard macros and normal editing.
What if I _expected_ it to do things visually?

Yes, line-move-visual is kind of sucky for keyboard macros (as I've
already said, I'd rather have visual line movement on separate bindings
to normal/logical line movement). However, it turning off inside
keyboard macro definition when it's otherwise on would IMO be pretty
infuriatingly surprising.

Slightly contrived example - you're editing a wide table say,
line-move-visual is on and you have set your window size to wrap at
a table border, and then you notice a regular edit you're doing
to the 4th (on the 1st visual line) and 17th columns (on the
second visual line of the same logical line) could be repeated
all the way down with a macro.  You try to use next-line, just as you
would outside keyboard macro definition and have been using for
the past 4 rows before the ol' brain kicked in and told you to
press F3...

In short, leave it on or leave it off, don't magically muck with it.









^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:25                   ` David De La Harpe Golden
@ 2008-08-01  0:27                     ` David De La Harpe Golden
  2008-08-01  0:29                     ` Lennart Borgman (gmail)
  1 sibling, 0 replies; 47+ messages in thread
From: David De La Harpe Golden @ 2008-08-01  0:27 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman, Miles Bader

David De La Harpe Golden wrote:

> a table border,

Ment column border somewhere in middle of table, sorry, probably
obvious from context.







^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:25                   ` David De La Harpe Golden
  2008-08-01  0:27                     ` David De La Harpe Golden
@ 2008-08-01  0:29                     ` Lennart Borgman (gmail)
  2008-08-01  0:58                       ` David De La Harpe Golden
  1 sibling, 1 reply; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-01  0:29 UTC (permalink / raw)
  To: David De La Harpe Golden
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman, Miles Bader

David De La Harpe Golden wrote:
> Lennart Borgman (gmail) wrote
>>> Macros do not -- and cannot -- make any guarantees about what happens if
>>> you execute them in a different environment, or on different text, than
>>> where they were recorded.
>>
>> Do you mean that there is something that prevents us from temporary
>> turning things off during keyboard macro recording and execution? In
>> that case: what?
>>
> 
> It'd be annoying?
> 
> It would break similarity between keyboard macros and normal editing.
> What if I _expected_ it to do things visually?
> 
> Yes, line-move-visual is kind of sucky for keyboard macros (as I've
> already said, I'd rather have visual line movement on separate bindings
> to normal/logical line movement). However, it turning off inside
> keyboard macro definition when it's otherwise on would IMO be pretty
> infuriatingly surprising.
> 
> Slightly contrived example - you're editing a wide table say,
> line-move-visual is on and you have set your window size to wrap at
> a table border, and then you notice a regular edit you're doing
> to the 4th (on the 1st visual line) and 17th columns (on the
> second visual line of the same logical line) could be repeated
> all the way down with a macro.  You try to use next-line, just as you
> would outside keyboard macro definition and have been using for
> the past 4 rows before the ol' brain kicked in and told you to
> press F3...

And if some lines wrap and others do not?

> In short, leave it on or leave it off, don't magically muck with it.


Maybe an option would be best IMO.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-31 23:38                 ` Lennart Borgman (gmail)
  2008-08-01  0:25                   ` David De La Harpe Golden
@ 2008-08-01  0:33                   ` Miles Bader
  2008-08-01  0:37                     ` Lennart Borgman (gmail)
  1 sibling, 1 reply; 47+ messages in thread
From: Miles Bader @ 2008-08-01  0:33 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman

"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>> Macros do not -- and cannot -- make any guarantees about what happens if
>> you execute them in a different environment, or on different text, than
>> where they were recorded.
>
> Do you mean that there is something that prevents us from temporary
> turning things off during keyboard macro recording and execution? In
> that case: what?

The point is that it doesn't actually help -- there are a million other
cases that can trip up the user, and the only general solution is for
users to be aware of problems that can crop up during macro replying and
be fairly conservative in how they make macros.

Having commands work _differently_ during macro recording is guaranteed
to confuse people, and doing so will probably cause as many problems as
it "solves".

-Miles

-- 
自らを空にして、心を開く時、道は開かれる




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:33                   ` Miles Bader
@ 2008-08-01  0:37                     ` Lennart Borgman (gmail)
  2008-08-01  0:46                       ` Miles Bader
  0 siblings, 1 reply; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-01  0:37 UTC (permalink / raw)
  To: Miles Bader
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman

Miles Bader wrote:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>>> Macros do not -- and cannot -- make any guarantees about what happens if
>>> you execute them in a different environment, or on different text, than
>>> where they were recorded.
>> Do you mean that there is something that prevents us from temporary
>> turning things off during keyboard macro recording and execution? In
>> that case: what?
> 
> The point is that it doesn't actually help -- there are a million other
> cases that can trip up the user, and the only general solution is for
> users to be aware of problems that can crop up during macro replying and
> be fairly conservative in how they make macros.

I think this case is special. The special thing is the relation between 
the visual move and the buffer point. That relation changes according to 
something that is rather unrelated with the buffer contents but can 
easily be changed by the user. That makes the relation very volatile.

> Having commands work _differently_ during macro recording is guaranteed
> to confuse people, and doing so will probably cause as many problems as
> it "solves".
> 
> -Miles
> 




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:37                     ` Lennart Borgman (gmail)
@ 2008-08-01  0:46                       ` Miles Bader
  2008-08-01  0:50                         ` Lennart Borgman (gmail)
  2008-08-01 10:16                         ` Andrew W. Nosenko
  0 siblings, 2 replies; 47+ messages in thread
From: Miles Bader @ 2008-08-01  0:46 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman

"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> I think this case is special. The special thing is the relation between
> the visual move and the buffer point. That relation changes according to
> something that is rather unrelated with the buffer contents but can
> easily be changed by the user. That makes the relation very volatile.

Not really, given that (1) window-width changes quite rarely,
and (2) most macros are used immediately (in the same buffer/window) and
then discarded (or rather, forgotten about).

Anyway, what you're suggesting seems every bit as bad, or worse, than
the problem it's purporting to solve -- without, as far as I can see,
any actual evidence that there _is_ a problem (have we gotten any bug
reports?).

-Miles

-- 
Freebooter, n. A conqueror in a small way of business, whose annexations lack
of the sanctifying merit of magnitude.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:46                       ` Miles Bader
@ 2008-08-01  0:50                         ` Lennart Borgman (gmail)
  2008-08-01 10:16                         ` Andrew W. Nosenko
  1 sibling, 0 replies; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-01  0:50 UTC (permalink / raw)
  To: Miles Bader
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman

Miles Bader wrote:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>> I think this case is special. The special thing is the relation between
>> the visual move and the buffer point. That relation changes according to
>> something that is rather unrelated with the buffer contents but can
>> easily be changed by the user. That makes the relation very volatile.
> 
> Not really, given that (1) window-width changes quite rarely,

You have to take into account both line length and window-width.

> and (2) most macros are used immediately (in the same buffer/window) and
> then discarded (or rather, forgotten about).

Yes, that is a good argument.

> Anyway, what you're suggesting seems every bit as bad, or worse, than
> the problem it's purporting to solve -- without, as far as I can see,
> any actual evidence that there _is_ a problem (have we gotten any bug
> reports?).

But that is not such a good argument right now, of course ... ;-)

> -Miles
> 




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:29                     ` Lennart Borgman (gmail)
@ 2008-08-01  0:58                       ` David De La Harpe Golden
  2008-08-01  1:01                         ` Lennart Borgman (gmail)
  0 siblings, 1 reply; 47+ messages in thread
From: David De La Harpe Golden @ 2008-08-01  0:58 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman, Miles Bader

Lennart Borgman (gmail) wrote:

> And if some lines wrap and others do not?

Well, that's why I find logical lines on up/down/C-p/C-n and
visual lines on other keys nicest - you can just choose the appropriate
movement (within keyboard macros or otherwise).

...

(global-set-key [C-p] 'previous-logical-line)
(global-set-key [C-n] 'next-logical-line)
(global-set-key [up] 'previous-logical-line)
(global-set-key [down] 'next-logical-line)
(global-set-key [M-up] 'previous-line)
(global-set-key [M-down] 'next-line)












^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:58                       ` David De La Harpe Golden
@ 2008-08-01  1:01                         ` Lennart Borgman (gmail)
  2008-08-01  1:49                           ` David De La Harpe Golden
  2008-08-01 18:19                           ` Richard M Stallman
  0 siblings, 2 replies; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-01  1:01 UTC (permalink / raw)
  To: David De La Harpe Golden
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman, Miles Bader

David De La Harpe Golden wrote:
> Lennart Borgman (gmail) wrote:
> 
>> And if some lines wrap and others do not?
> 
> Well, that's why I find logical lines on up/down/C-p/C-n and
> visual lines on other keys nicest - you can just choose the appropriate
> movement (within keyboard macros or otherwise).
> 
> ...
> 
> (global-set-key [C-p] 'previous-logical-line)
> (global-set-key [C-n] 'next-logical-line)
> (global-set-key [up] 'previous-logical-line)
> (global-set-key [down] 'next-logical-line)
> (global-set-key [M-up] 'previous-line)
> (global-set-key [M-down] 'next-line)


Maybe that is a good idea, but it still does not help the user that is 
typing the visual move variants during macro recording.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  1:01                         ` Lennart Borgman (gmail)
@ 2008-08-01  1:49                           ` David De La Harpe Golden
  2008-08-01  8:43                             ` Lennart Borgman (gmail)
  2008-08-01 18:19                           ` Richard M Stallman
  1 sibling, 1 reply; 47+ messages in thread
From: David De La Harpe Golden @ 2008-08-01  1:49 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman, Miles Bader

Lennart Borgman (gmail) wrote:

> Maybe that is a good idea, but it still does not help the user that is
> typing the visual move variants during macro recording.

It means the user can choose the appropriate one, whether inside or
outside macro recording. Since it shouldn't make a difference if you're
recording a macro or not...

Even if you do want to (or provide an option to) "help" IMO the way to
do it would be to have the keyboard macro definition remember an
associated window-width, and have keyboard macro playback temporarily
apply that window-width during playback (not necessarily visually
resizing the window). That seems far nicer than meddling with
line-move-visual on entering macro definition and playback.
Would probably require some C-level work.























^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-07-31 17:24             ` Lennart Borgman (gmail)
  2008-07-31 23:34               ` Miles Bader
@ 2008-08-01  4:43               ` Richard M Stallman
  1 sibling, 0 replies; 47+ messages in thread
From: Richard M Stallman @ 2008-08-01  4:43 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: david.reitter, cyd, andrew.w.nosenko, emacs-devel, monnier, raman

    Wouldn't it be more correct to say that the requirement is that during 
    execution of the macro the command should do the same thing to the 
    buffer as during recording of the macro?

In some sense yes, but when the command's behavior is conditional on
something (whether it be buffer text, or how text appears on the
screen), it has to be conditional in the macro just as it is
conditional when you run the command from the keyboard.

The only way to get rid of these commands' dependence on the window
width is to make the line breaking not depend on the window width.
That might be a good idea.  If some other parameter controls where to
do the line-breaking at word boundaries, rather than the window width
directly, you could set that parameter differently in order to run the
macro.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  1:49                           ` David De La Harpe Golden
@ 2008-08-01  8:43                             ` Lennart Borgman (gmail)
  0 siblings, 0 replies; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-01  8:43 UTC (permalink / raw)
  To: David De La Harpe Golden
  Cc: rms, david.reitter, Chong Yidong, andrew.w.nosenko, emacs-devel,
	monnier, raman, Miles Bader

David De La Harpe Golden wrote:
> Lennart Borgman (gmail) wrote:
> 
>> Maybe that is a good idea, but it still does not help the user that is
>> typing the visual move variants during macro recording.
> 
> It means the user can choose the appropriate one, whether inside or
> outside macro recording. Since it shouldn't make a difference if you're
> recording a macro or not...
> 
> Even if you do want to (or provide an option to) "help" IMO the way to
> do it would be to have the keyboard macro definition remember an
> associated window-width, and have keyboard macro playback temporarily
> apply that window-width during playback (not necessarily visually
> resizing the window). That seems far nicer than meddling with
> line-move-visual on entering macro definition and playback.
> Would probably require some C-level work.


I can see the idea, but I fear that with all details this may be very 
complicated. But I am not sure.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  0:46                       ` Miles Bader
  2008-08-01  0:50                         ` Lennart Borgman (gmail)
@ 2008-08-01 10:16                         ` Andrew W. Nosenko
  1 sibling, 0 replies; 47+ messages in thread
From: Andrew W. Nosenko @ 2008-08-01 10:16 UTC (permalink / raw)
  To: Miles Bader
  Cc: rms, david.reitter, Chong Yidong, Lennart Borgman (gmail),
	emacs-devel, monnier, raman

On Fri, Aug 1, 2008 at 3:46 AM, Miles Bader <miles@gnu.org> wrote:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>> I think this case is special. The special thing is the relation between
>> the visual move and the buffer point. That relation changes according to
>> something that is rather unrelated with the buffer contents but can
>> easily be changed by the user. That makes the relation very volatile.
>
> Not really, given that (1) window-width changes quite rarely,

Not always :-(
While intentional changing of the frame size is rare indeed, they may
be changed just because of bug.

See "Shrinking frames as of past month" thread for example.
(http://lists.gnu.org/archive/html/emacs-devel/2008-03/msg01851.html)

> and (2) most macros are used immediately (in the same buffer/window) and
> then discarded (or rather, forgotten about).
>
> Anyway, what you're suggesting seems every bit as bad, or worse, than
> the problem it's purporting to solve -- without, as far as I can see,
> any actual evidence that there _is_ a problem (have we gotten any bug
> reports?).

-- 
Andrew W. Nosenko <andrew.w.nosenko@gmail.com>




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01  1:01                         ` Lennart Borgman (gmail)
  2008-08-01  1:49                           ` David De La Harpe Golden
@ 2008-08-01 18:19                           ` Richard M Stallman
  2008-08-01 19:06                             ` Chong Yidong
  1 sibling, 1 reply; 47+ messages in thread
From: Richard M Stallman @ 2008-08-01 18:19 UTC (permalink / raw)
  To: Lennart Borgman (gmail)
  Cc: david, david.reitter, cyd, andrew.w.nosenko, emacs-devel, monnier,
	raman, miles

    > Well, that's why I find logical lines on up/down/C-p/C-n and
    > visual lines on other keys nicest - you can just choose the appropriate
    > movement (within keyboard macros or otherwise).


    Maybe that is a good idea, but it still does not help the user that is 
    typing the visual move variants during macro recording.

Emacs is not magic.  When you record a macro you need to think
about what it will do in various context where you might use it.




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01 18:19                           ` Richard M Stallman
@ 2008-08-01 19:06                             ` Chong Yidong
  2008-08-01 19:29                               ` Lennart Borgman (gmail)
  0 siblings, 1 reply; 47+ messages in thread
From: Chong Yidong @ 2008-08-01 19:06 UTC (permalink / raw)
  To: rms
  Cc: david, david.reitter, Lennart Borgman (gmail), andrew.w.nosenko,
	emacs-devel, monnier, raman, miles

Richard M Stallman <rms@gnu.org> writes:

> Emacs is not magic.

At least not yet.

(Cue the saying about how any sufficiently advanced technology etc...)




^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: line-move-visual never set to nil?
  2008-08-01 19:06                             ` Chong Yidong
@ 2008-08-01 19:29                               ` Lennart Borgman (gmail)
  0 siblings, 0 replies; 47+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-01 19:29 UTC (permalink / raw)
  To: Chong Yidong
  Cc: rms, david, david.reitter, andrew.w.nosenko, emacs-devel, monnier,
	raman, miles

Chong Yidong wrote:
> Richard M Stallman <rms@gnu.org> writes:
> 
>> Emacs is not magic.
> 
> At least not yet.


That is because you did not want it to behave the way I suggested.




^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2008-08-01 19:29 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-26 17:43 line-move-visual never set to nil? T. V. Raman
2008-07-26 18:13 ` Stefan Monnier
2008-07-26 18:40   ` Vinicius Jose Latorre
2008-07-26 18:44     ` Stefan Monnier
2008-07-26 18:48   ` David Reitter
2008-07-26 18:57 ` Chong Yidong
2008-07-26 19:38   ` T. V. Raman
2008-07-26 19:41     ` Chong Yidong
2008-07-27 18:46   ` David Reitter
2008-07-27 20:59     ` Stefan Monnier
2008-07-27 21:08       ` Stefan Monnier
2008-07-28  0:23         ` T. V. Raman
2008-07-29  7:43       ` Andrew W. Nosenko
2008-07-29 14:34         ` Chong Yidong
2008-07-29 14:43           ` Lennart Borgman
2008-07-29 16:27           ` Stefan Monnier
2008-07-29 18:31             ` Chong Yidong
2008-07-29 18:37               ` David Reitter
2008-07-29 19:18                 ` Chong Yidong
2008-07-29 19:23                   ` Lennart Borgman (gmail)
2008-07-29 19:59                     ` Stefan Monnier
2008-07-29 21:23                   ` David De La Harpe Golden
2008-07-30  0:31                 ` Miles Bader
2008-07-30  0:42                   ` David Reitter
2008-07-30  3:46           ` Richard M Stallman
2008-07-30  4:43             ` Chong Yidong
2008-07-30  4:56               ` Miles Bader
2008-07-30  7:59               ` Lennart Borgman (gmail)
2008-07-31 17:24             ` Lennart Borgman (gmail)
2008-07-31 23:34               ` Miles Bader
2008-07-31 23:38                 ` Lennart Borgman (gmail)
2008-08-01  0:25                   ` David De La Harpe Golden
2008-08-01  0:27                     ` David De La Harpe Golden
2008-08-01  0:29                     ` Lennart Borgman (gmail)
2008-08-01  0:58                       ` David De La Harpe Golden
2008-08-01  1:01                         ` Lennart Borgman (gmail)
2008-08-01  1:49                           ` David De La Harpe Golden
2008-08-01  8:43                             ` Lennart Borgman (gmail)
2008-08-01 18:19                           ` Richard M Stallman
2008-08-01 19:06                             ` Chong Yidong
2008-08-01 19:29                               ` Lennart Borgman (gmail)
2008-08-01  0:33                   ` Miles Bader
2008-08-01  0:37                     ` Lennart Borgman (gmail)
2008-08-01  0:46                       ` Miles Bader
2008-08-01  0:50                         ` Lennart Borgman (gmail)
2008-08-01 10:16                         ` Andrew W. Nosenko
2008-08-01  4:43               ` Richard M Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).