[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: trouble indenting looooong lines with visual-line-mode
From: |
Xah Lee |
Subject: |
Re: trouble indenting looooong lines with visual-line-mode |
Date: |
Wed, 2 Sep 2009 09:16:58 -0700 (PDT) |
User-agent: |
G2/1.0 |
On Sep 1, 8:21 pm, Allan Gottlieb <gottl...@nyu.edu> wrote:
> (I am using emacs 23.1)
> Start with emacs -Q and a buffer in fundamental mode
>
> Consider a line wider than the frame, for example
>
> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
> which exceeds an 80 column frame.
> Now assume you have a short line say
> yyyy
> followed by the above long line, i.e.
> yyyy
> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
> So far so good. Now indent the long line with say one space.
> If visual-line-mode is OFF, I see what I expect, the long line is
> preceded by one space.
>
> But with visual-line-mode ON, a blank line appears on the screen between
> the short and long lines, i.e. the long line (with only one word) was
> wrapped.
> This behavior seems wrong. I am getting burned in the following case
> among others with html
>
> <ol>
> <li>
> <a
> href="a-looong-url-that-naturally-contains-no-blanks">
> go here
> </a>
>
> When the looog-url exceeds the line length a blank line appears
> after the <a
>
> I realize the blank line is not in the file so the browser is not
> affected, but I find a plus of html to be that it reads well in emacs
> even when not formatted (by say w3m).
>
> Am I correct in viewing this as a bug? If so I will file a bug report.
it's not a bug. It's a natural behavior of smart word wrapping. Try
that in any word processor, you see the same behavior.
The problem is that you have this un-natural long string, those 80 or
so x. Not human language or computer lang have such long string as
words.
for plain text, sure that happens, originated in 1980s as a hack of
using ASCII pict to emulate a horizontal line. i.e. in html it's <hr>.
Such a hack is less and less used today. If you must use it, word wrap
(aka emacs's visual-line-mode) is not suitable.
all this has to to with physical formatting, a mindset particularly
started by unix idiots. For references, see:
• A Simple Lisp Code Formatter
http://xahlee.org/emacs/lisp_formatter.html
• A Text Editor Feature: Extend Selection By Semantic Unit
http://xahlee.org/emacs/syntax_tree_walk.html
• The Harm of Hard-wrapping Lines
http://xahlee.org/UnixResource_dir/writ/hard-wrap.html
• Tabs versus Spaces in Source Code
http://xahlee.org/UnixResource_dir/writ/tabs_vs_spaces.html
• Plain-Text Email Fetish
http://xahlee.org/UnixResource_dir/writ/plain_text.html
• A Text Editor Feature: Extend Selection By Semantic Unit
http://xahlee.org/emacs/syntax_tree_walk.html
• Fundamental Problems of Lisp
http://xahlee.org/UnixResource_dir/writ/lisp_problems.html
Xah
∑ http://xahlee.org/
☄