On Fri, 1 Sep 2017, Ralf Goertz wrote:
Am Mon, 28 Aug 2017 09:33:31 +0200
schrieb Ralf Goertz <r_goe...@web.de>:
Hello, me again
Hi,
I guess there have been discussions about this in the past and from
what I understood hooking an R-function to facilitate automatic
adjustment is problematic. So why not doing it like this:
would anybody care to comment? I think it is quite important to have an
automatic adjustment of R's idea of the width of its terminal window. I
quite often find myself in the situation that I started R in its own
(wide) xterm. Then I look at some data frame or vector like this (using
small width here in order to stay within the ususal width of a text
posting):
(r=rnorm(20))
[1] 0.05672115 0.59047528 0.41337747 0.01737960 -0.78133482
[6] 0.49218494 -0.78793312 -1.26125820 0.56748784 0.65725277
[11] -0.04419487 0.14463142 -0.48613097 0.42789592 1.22424913
[16] 0.43272842 -0.70089673 0.14313221 -0.97159181 -1.29164930
Then I want to plot something
hist(r)
Because the plot window and the xterm don't fit side by side I resize
the xterm to be smaller. Then I want to see the data again:
r
[1] 0.05672115 0.59047528 0.41337747 0.01737960 -
0.78133482
[6] 0.49218494 -0.78793312 -1.26125820 0.56748784
0.65725277
[11] -0.04419487 0.14463142 -0.48613097 0.42789592
1.22424913
[16] 0.43272842 -0.70089673 0.14313221 -0.97159181 -
1.29164930
This is ugly and hard to read. Many good programs like vim adjust their
internal width representation automatically. Why shouldn't R do the
same? It seems quite easy, at least when readline is used:
--- R-3.4.1/src/unix/sys-std.c 2017-03-24 00:03:59.000000000 +0100
+++ R-3.4.1/src/unix/sys-std.patched.c 2017-08-28 09:16:02.714204023
+0200 @@ -1005,6 +1005,9 @@
// introduced in readline 4.0: only used for >= 6.3
#ifdef HAVE_RL_RESIZE_TERMINAL
rl_resize_terminal();
+ int rl_height, rl_width;
+ rl_get_screen_size(&rl_height,&rl_width);
+ R_SetOptionWidth(rl_width);
#endif
}
#endif
The 'width' option affects more than printing to the console; it also
affects, for example, printing to a file via sink() or
capture.output(). So doing this unconditionally would not be a good
idea. Making it available as an option for those who want it seems
reasonable but still involves a lot more work than these three lines.
It requires designing a protocol for enabling this feature, ideally in
a way that can be made to work well on other interfaces (e.g. Windows,
Mac, RStudio) as well, and it requires documenting all this in a
sensible place. A more complete proposal might well be considered for
adoption.
Best,
luke
I tried it out and it works perfectly here. Of course there should be
an option to switch this on and off but you get the idea. What do you
think?
It would be much appreciated if you considered it.
Thanks Ralf
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa Phone: 319-335-3386
Department of Statistics and Fax: 319-335-3017
Actuarial Science
241 Schaeffer Hall email: luke-tier...@uiowa.edu
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel