[R] lines don't wrap. must scroll horizontally to see/edit a long line in R GUI
murdoch at stats.uwo.ca
Mon Dec 14 02:57:51 CET 2009
On 13/12/2009 5:22 PM, Carl Witthoft wrote:
> Duncan Murdoch wrote:
> "This is by design. Carriage returns have syntactic meaning in R, so the
> editor shouldn't display phantom ones. In Linux there's no choice
> because R doesn't control how text is displayed, but the Windows GUI
> gets it right."
> I have to disagree here. Soft-wrapping is the default option in most
> editors, and the OSX R.app gui wraps both input and output. It's pretty
> easy to tell a bunch of code is (or isn't) all one line unless you don't
> believe in prompts or something :-).
Try this in the OSX GUI (or any other editor that does soft wrapping).
Open a "New Document", and make the window pretty narrow, e.g. about
10-20 chars wide. (You can make it wider, but you'll have more typing
Type this line into it, with enough ones that it wraps to 3 lines:
x <- 111111111111111
It will look something like this in the GUI.
Other editors might wrap differently, e.g. vi pays no attention to
whitespace, and just wraps the characters when it hits the end of the line.
Now put a hard return before the 1 on the third line. It will look
almost identical, but (in the GUI editor) you'll see that the third line
now has a line number 2. It's a bit hard to see, but I wouldn't complain.
Now copy and paste the whole thing into the console. If the console is
also narrow enough, it will look the way I've typed it above, with
nothing at all to signal it's really two lines, not 1 or 3, until you
hit enter to execute both lines.
This is fine in languages like C where newlines barely matter, but it
makes a big difference whether that's one line or two in R.
So I'd say the best practice is to keep your lines short enough that you
never have your editor wrapping things for you, and to use editors that
give strong visual signals (e.g. the Windows GUI's $ signs, or the OSX
GUI editor's line numbering) when you accidentally violate this rule.
More information about the R-help