On 02/23/2010 03:02 PM, Marc Schwartz wrote:

On Feb 23, 2010, at 7:05 AM, Liviu Andronic wrote:

Dear all
Is it possible to get basic colour highlighting for inputs and outputs
in the R terminal? I am looking for something similar to what GUIs
provide, such as JGR and (I think) the Windows R GUI: colouring all
inputs in red, and all outputs in blue. All this in a colour-aware
console (in my case, on Linux).

I've been looking into xterm256 and highlight, but I am sofar unable
to do with them what I would need. The closest I get to is with
style() in xterm256:
require(xterm256)
cat( style( "hello world", bg = "black", fg = "blue"), "\n" )
hello world

The text will appear blue. What I would want to achieve, however, is
to be able to define some global options for input fg and bg colours,
and output fg and bg colours. Then, for any command that I would
execute, say `mean(1:5)', I would get:
mean(1:10)  ##in red
[1] 5.5  ##in blue
summary(1:5)  ##in red
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.  ##in blue
      1       2       3       3       4       5  ##in blue

Does anyone know a way to do this? Thank you
Liviu

Hi Liviu,

I was not aware of Romain's xterm256 package, but from a quick review of the 
manual, it would appear to not support an automated syntax highlighting 
capability. One seems to need to explicitly print output to the console using 
his functions to be able to colorize it.

That's right, xterm256 is for manual formatting.

What Liviu wants is not impossible to achieve --- it has been done for python for example [1] --- but would require some considerable effort, using for example ncurses [2] .

Romain

[1] http://bpython-interpreter.org/home/
[2] http://www.gnu.org/software/ncurses/

Having used R on Windows, Linux and now OSX over the past 8+ years, I initially 
used ESS (http://ess.r-project.org/) on Windows and stayed with it on each 
subsequent platform. The terminal consoles are fine for quick and dirty coding 
and I will frequently use the terminal on OSX to test code for replying to a 
post here. But for routine use, I am in ESS, which provides syntax highlighting 
and so much more.

On Windows and OSX, there are GUI interfaces that members of R Core have kindly 
provided which provide colorized output, but there is no parallel on Linux, 
other than third party options.

Rather than using the terminal, I would recommend that you give serious 
consideration to using a full blown text editor, many of which already support 
R syntax highlighting and of course typical text editing features. In the most 
basic implementation, you can write your code in the editor and copy and paste 
it to the R console.

With tighter integration, such as ESS, you can have split windows, with R code 
in one frame (say the upper half of the application window) and the R console 
running in an other one (say the lower half), both of which support R syntax 
highlighting. With a quick few keystrokes, you can submit the entire R code 
frame to the console or highlight sections of code and just submit that. Beyond 
that there is a lot other functionality (version control, LaTeX support, etc.) 
available that makes ESS an extremely efficient environment to use.

If you prefer to not use or learn Emacs, there are other editors available such 
as Vim, Bluefish, Eclipse and many others available for Linux, some of which 
are listed here:

   http://www.sciviews.org/_rgui/projects/Editors.html

JGR is also available for Linux:

   http://jgr.markushelbig.org/JGR_on_Linux.html


HTH,

Marc Schwartz


--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/OIXN : raster images and RImageJ
|- http://tr.im/OcQe : Rcpp 0.7.7
`- http://tr.im/O1wO : highlight 0.1-5

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to